我已经阅读了许多文章并观看了一些视频。
问题:我无法将base64字符串图像作为POST请求发送到PHP服务器并保存到MySQL数据库中,而不会出现损坏。
我的尝试:我尝试传递像传递字符串或整数一样的图像的base64编码字符串作为POST参数。我验证了POST数据成功传输到PHP服务器,并且它被保存在数据库中。然而,当我提取base64编码字符串并解码以便可以在浏览器中呈现图像时,它不起作用。它只显示一个损坏的图像链接,而不是图像。似乎在POST过程中发生了某些破坏数据的情况。我这么说是因为我直接从Xcode的println()语句中复制了base64字符串,并将其粘贴到PHP文件中,其中它被解码并完美地显示。我能够完美地上传来自我的Android应用程序的图像的base64字符串。问题似乎出在我在Swift中的做法上。
经过一些研究,我发现可能需要在图像参数周围指定边界。但是我不确定,因为我不知道是否仅需要在直接发送图像文件时指定边界,还是在发送图像的base64编码字符串时也需要边界。
请问有人能告诉我在将base64编码字符串参数发送到PHP服务器之前是否需要设置边界?我可能做错了什么吗?
问题:我无法将base64字符串图像作为POST请求发送到PHP服务器并保存到MySQL数据库中,而不会出现损坏。
我的尝试:我尝试传递像传递字符串或整数一样的图像的base64编码字符串作为POST参数。我验证了POST数据成功传输到PHP服务器,并且它被保存在数据库中。然而,当我提取base64编码字符串并解码以便可以在浏览器中呈现图像时,它不起作用。它只显示一个损坏的图像链接,而不是图像。似乎在POST过程中发生了某些破坏数据的情况。我这么说是因为我直接从Xcode的println()语句中复制了base64字符串,并将其粘贴到PHP文件中,其中它被解码并完美地显示。我能够完美地上传来自我的Android应用程序的图像的base64字符串。问题似乎出在我在Swift中的做法上。
经过一些研究,我发现可能需要在图像参数周围指定边界。但是我不确定,因为我不知道是否仅需要在直接发送图像文件时指定边界,还是在发送图像的base64编码字符串时也需要边界。
请问有人能告诉我在将base64编码字符串参数发送到PHP服务器之前是否需要设置边界?我可能做错了什么吗?
let image: UIImage = imgProfilePic.image!
let size = CGSizeApplyAffineTransform(image.size, CGAffineTransformMakeScale(0.1, 0.1))
let hasAlpha = false
let scale: CGFloat = 0.0 // Automatically use scale factor of main screen
UIGraphicsBeginImageContextWithOptions(size, !hasAlpha, scale)
image.drawInRect(CGRect(origin: CGPointZero, size: size))
let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
var imageData = UIImageJPEGRepresentation(scaledImage, 0.9)
let base64String = imageData.base64EncodedStringWithOptions(.allZeros)
var cd = CoreDataUser(pstrContext: "this")
var params = "strUsername=" + cd.getUsername()
params = params + "&strPassword=" + cd.getPassword()
params = params + "&blbProfilePic=" + base64String
+
字符,PHP会将其替换为空格字符。 - findall