使用 alamofire multipart 上传图像数组
Posted
技术标签:
【中文标题】使用 alamofire multipart 上传图像数组【英文标题】:upload array of images with alamofire multipart 【发布时间】:2019-02-04 11:26:49 【问题描述】:我使用 alamofire multipart 将图像数组上传到服务器它仅上传第一张图像(数组计数的次数)并且不上传其余图像,我在从图像选择器获取图像之前和之后检查所有内容图像到多部分
extension profileViewController
@objc private func UploadImage()
let headers = ["Authorization": "Bearer \(AuthService.instance.Auth_Token)"]
Alamofire.upload(multipartFormData: multipartFormData in
if self.ImageArray?.isEmpty == false
for (index, image) in self.ImageArray!.enumerated()
print(index)
var imageData = image.jpegData(compressionQuality: 0.6)
print(imageData)
multipartFormData.append(imageData!, withName: "photos[]", fileName: "\(self.RandomString(length: 10)).jpeg",mimeType: "image/jpeg")
print(imageData)
imageData?.removeAll()
else
return
, usingThreshold:UInt64.init(),
to: "http://couponsub.farid.azq1.com/api/save-user-photos"/*upload_imageUrl*/, //URL Here
method: .post,
headers: headers, //pass header dictionary here
encodingCompletion: (result) in
switch result
case .success(let upload, _, _):
print("the status code is :")
upload.uploadProgress(closure: (progress) in
print(progress.fractionCompleted)
//self.ProgressBar.progress = CGFloat(Float(progress.fractionCompleted))
)
upload.responseJSON response in
if response.result.isSuccess == true
KRProgressHUD.dismiss()
print("the resopnse code is : \(String(describing: response.response?.statusCode))")
let json = try! JSON(data: response.data!)
print(json)
break
case .failure(let encodingError):
print("the error is : \(encodingError.localizedDescription)")
break
)
【问题讨论】:
并在您的服务器端正确处理照片 [] 数组?这也是***.com/questions/41499768/… 的副本 我已经在服务器端检查过了,我看到了重复的问题,但是没有用,所以我发布了这个问题 【参考方案1】:func uploadMultipleImages(imagesData:[Data])
Alamofire.upload(multipartFormData: multipartFormData in
// import image to request
for imageData in imagesData
multipartFormData.append(imageData, withName: "\(imageParamName)[]", fileName: "\(Date().timeIntervalSince1970).jpeg", mimeType: "image/jpeg")
for (key, value) in parameters
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
, to: urlString,
encodingCompletion: encodingResult in
switch encodingResult
case .success(let upload, _, _):
upload.responseJSON response in
case .failure(let error):
print(error)
)
【讨论】:
感谢您的回答,它仍然上传第一张图片的时间数组计数 检查每个文件的文件名都不相同 --- 文件名每次都必须是唯一的 为 meee 出色的工作......以上是关于使用 alamofire multipart 上传图像数组的主要内容,如果未能解决你的问题,请参考以下文章
带有参数和标题的 Alamofire Multipart-form 图像上传 - Swift
如何使用 Alamofire 5.0.0-beta.3 (Swift 5) 上传图片(多部分)
如何在 multiformData 的 alamofire 中上传文件?
Alamofire 4 swift 3 上传带有标题的 MultipartFormData 未发布