当前位置: 首页 > 面试题库 >

Swift 3 Alamofire分段上传

闾丘选
2023-03-14
问题内容

由于迁移到Swift 3,我发现很难编译使用Alamofire的项目。

上载multipartFormData时发生问题:

Alamofire.upload(.POST, URL, headers: headers, multipartFormData: {
        multipartFormData in
.
.
. 
})

对成员’upload(_:to:method:headers :)的含糊引用

任何帮助,不胜感激,在此先感谢!

解决:

 Alamofire.upload(multipartFormData: { (multipartFormData) in

        multipartFormData.append(fileData, withName: "file_pack", fileName: "file_pack", mimeType: "text/plain")


        for (key, value) in self.parameters {
            multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
        }
        }, with: URL2, encodingCompletion: { (result) in

            switch result {
            case .success(let upload, _, _):

                upload.responseJSON { response in
                    self.delegate?.showSuccessAlert()
                    print(response.request)  // original URL request
                    print(response.response) // URL response
                    print(response.data)     // server data
                    print(response.result)   // result of response serialization
                    //                        self.showSuccesAlert()
                    self.removeImage("frame", fileExtension: "txt")
                    if let JSON = response.result.value {
                        print("JSON: \(JSON)")
                    }
                }

            case .failure(let encodingError):
                self.delegate?.showFailAlert()
                print(encodingError)
            }

    })

这就是应该在Swift 3中实现上传方法的方式


问题答案:

例如,在 Swift 3中* 使用 Alamofire 4.0.0*

(确保您已经准备好4.0.0,因为您似乎尚未更新Alamofire)

Alamofire.upload(multipartFormData: { (multipartFormData) in
        // code
    }, to: URL, encodingCompletion: { (result) in
        // code
    })

要么

Alamofire.upload(multipartFormData: { (multipartFormData) in
        // code
    }, with: URL, encodingCompletion: { (result) in
        // code
    })

因此headers需要通过URL请求传递:

let URL = try! URLRequest(url: "http://example.com", method: .get, headers: headers)


 类似资料:
  • 主要内容:Maven依赖关系,HttpClient分段上传请求示例在本教程中,我们将演示如何使用Apache HttpClient 4.5进行分段上传http请求。 Maven依赖关系 我们使用maven来管理依赖关系,并使用Apache HttpClient 4.5版本。 将以下依赖项添加到您的项目中。 pom.xml 文件的内容如下 - HttpClient分段上传请求示例 在这个例子中,我们将演示如何使用HttpClient 4.5来分段上传文件。 我们使

  • 我正在尝试使用 AWS PHP 开发工具包将一个 30 GB 的文件上传到亚马逊 S3。 它适用于最大7GB的文件。上传30 GB文件时,脚本运行约2小时后,我收到以下错误: 将部件上载到多部件上载时发生异常。以下部分出错:-第5部分:在上执行“UploadPart”时出错https://s3.amazonaws.com/Server3-27-SEP-2015/S3_www_1443369605.

  • 问题内容: 我正在使用Spring Boot,并且想要使用Controller来接收分段文件上传。发送文件时,我不断收到 错误415不支持的内容类型 响应,并且永不到达控制器 香港专业教育学院试图在HTML / jsp页面以及使用RestTemplate的独立客户端应用程序中使用form:action发送。所有尝试都给出相同的结果 从分段文档看来,必须将边界参数添加到分段上传中,但这似乎与控制器接

  • 问题内容: 使用Apache-Camel ESB,尝试将xlsx文件上传到Spring Rest Web应用程序。从apache-camel ESB上传失败。但是从Postman上传效果很好。下面共享代码段。 骆驼路由器中的处理器代码如下所示 Pom.xml 错误 当我们使用邮递员访问网络服务时,没有任何错误。能够成功上传服务器。Spring MVC代码, 问题答案: 您可能会在Spring后端日

  • 我正在尝试使用放心的分段上传方法上传csv文件。在 swagger API 文档中,请求正文如下所示,用于分段 csv 上传。 我的代码是这样的。 这在IntelliJ的想法中工作,没有任何问题。但是,当我使用maven将代码打包到jar中并运行它时,它会返回fileNotes异常。 如我所见,唯一的解决方案是使用java文件input stream,但既然swagger说要使用文件,那就不可能使

  • 我编写了以下代码来使用多部分上传(每个部分大于5 MB)将集合字符串上传到S3,但当我从S3下载回来时,它只包含来自一个部分的字符串。 我按以下顺序调用上述代码。 创建低级多部分上传对象 循环上传零件 呼叫完成上传