【发布时间】:2026-02-21 02:10:01
【问题描述】:
我正在使用 Alamofire 将我的数据发布到服务器。我有一张图片,我想用其他参数以数据形式上传到服务器。在 Alamofire 中,我使用 multipartFormData 方法发布所有参数和图像。服务器需要数据为 JSON 格式,参数如下:
{"product_name": "almondsfdsfsdf",
"product_price": "400",
"product_img": image.jpg}
我正在尝试,但它给了我一个失败的回应。这是我使用 alamofire 快速执行操作的代码:
let productName = itemNameTF.text!
let productPrice = itemPriceTF.text!
let productImage:UIImage = itemImage.image!
let url = "URL"
let parameter = ["product_name": productName, "product_price": productPrice]
let headers : HTTPHeaders = ["Content-Type": "application/json","Authorization" : "Token abcd"]
Alamofire.upload(multipartFormData: {
multipartFormData in
if let imageData = UIImageJPEGRepresentation(productImage, 0.5){
multipartFormData.append(imageData, withName: "image", fileName: "file.png", mimeType: "image/png")
}
for (key,value) in parameter {
multipartFormData.append(value.data(using: .utf8)!, withName: key)
}
}, to: url,method: .post, headers: headers, encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload,_,_):
upload.responseJSON { response in
print(response.request)
print(response.response)
print(response.result)
print(response.data)
}
break
case .failure(let encodingError):
print("error: \(encodingError)")
break
}
})
我的服务器接受 BLOB 数据中的图像。如果有人可以帮助我。谢谢!
【问题讨论】: