2

我正在尝试通过以下方式使用 POST 请求上传多个图像:

file[] : photo_1.jpg
file[] : photo_2.jpg
.
.
file[] : photo_n.jpg

其中文件上传采用数组的形式。这就是为什么我想知道

  • 如何修改我的单个图像代码以获取多个图像
  • 如何实现图像上传的进度跟踪器

代码:

func submitPhoto(onCompletion: () -> (), onError: ((NSError) -> ())? = nil) {

    guard let endPoint = Data.sharedInstance.submitPhotoEndpoint
        else { print("Empty endpoint"); return }

    let user = Users()

    let Auth_header = [
        "Authorization" : user.token,
        ]

    let image = UIImage(named: "myImage")!


    let parameters = [
            "submission_id": "27",
            "comment": "This is a comment"
    ]

    // Begin upload
    Alamofire.upload(.POST, endPoint, headers: Auth_header, multipartFormData: { multipartFormData in

        // import image to request
        if let imageData = UIImageJPEGRepresentation(image, 1) {
            multipartFormData.appendBodyPart(data: imageData, name: "file", fileName: "http://public/uploads/1462026701_ir6.jpg", mimeType: "image/jpg")
        }

        // import parameters
        for (key, value) in parameters {
            multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key)
        }

    }, // you can customise Threshold if you wish. This is the alamofire's default value
    encodingMemoryThreshold: Manager.MultipartFormDataEncodingMemoryThreshold,
    encodingCompletion: { encodingResult in
        switch encodingResult {
        case .Success(let upload, _, _):
            upload.responseJSON { response in
                debugPrint(response)
            }
        case .Failure(let encodingError):
            print(encodingError)
        }
    })

    }
4

0 回答 0