使用 Alamofire Swift 3 上传图像 (Base64)
Posted
技术标签:
【中文标题】使用 Alamofire Swift 3 上传图像 (Base64)【英文标题】:Upload an image (Base64) using Alamofire Swift 3 【发布时间】:2017-03-29 18:14:22 【问题描述】:我正在尝试使用 alamofire 通过 JSON 请求将 2 张图片上传到服务器
这是我的代码:
let parameters = ["CreditCardImage":CreditCardImage,"CreditCardBackImage":CreditCardBackImage , "CustomerID" : CustomerID]
let headers: HTTPHeaders = [
"Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Accept": "application/json"
]
Alamofire.request("MY URL", method : .post , parameters : parameters, encoding: JSONEncoding.default , headers: headers).responseJSON response in
// get json Response
let json = JSON(response.result.value)
print(json)
当我打印响应时,我在控制台中收到消息 unknown >>
我在邮递员中尝试过它也不起作用,那有什么问题?有什么帮助吗?
【问题讨论】:
【参考方案1】:您应该使用其他Alamofire
方法。这是一个例子:
func uploadAvatar(image: UIImage)
Alamofire.upload(multipartFormData: multipartFormData in
if let imageData = UIImageJPEGRepresentation(image, 1)
multipartFormData.append(imageData, withName: "file", fileName: "file.png", mimeType: "image/png")
, to: self.serverAddress + "/user/uploadAvatar", method: .post, headers: ["Authorization": User.shared.token], encodingCompletion: _ in )
【讨论】:
我也在使用 multipartFormData 和 base64 吗?如果是的话,我怎么能把它作为参数发送? @Muhamméd 我认为您应该检查您的服务器端以验证它是否获取图像并执行您想要的操作。【参考方案2】:你可以试试这个
let image = UIImage.init(named: "myImage")
let imgData = UIImageJPEGRepresentation(image!, 0.2)!
let parameters = ["name": rname]
Alamofire.upload(multipartFormData: multipartFormData in
multipartFormData.append(imgData, withName: "fileset",fileName: "file.jpg", mimeType: "image/jpg")
for (key, value) in parameters
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
,
to:"mysite/upload.php")
(result) in
switch result
case .success(let upload, _, _):
upload.uploadProgress(closure: (progress) in
print("Upload Progress: \(progress.fractionCompleted)")
)
upload.responseJSON response in
print(response.result.value)
case .failure(let encodingError):
print(encodingError)
【讨论】:
以上是关于使用 Alamofire Swift 3 上传图像 (Base64)的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 在 Swift 5 中使用 Alamofire 接收图像上传
如何在 Swift 中使用 Alamofire 上传带有 JSON 参数的图像?
如何在 Swift 4 中使用 Alamofire 上传具有其他参数的多个图像