当前位置: 首页 > 知识库问答 >
问题:

Swift 3阿拉莫菲尔多部分上传

华展鹏
2023-03-14

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

上载multipartFormData时出现问题:

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

对成员“upload(ux0: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中应该如何实现上传方法

共有3个答案

颛孙庆
2023-03-14

在swift 3中,试图按照@DCDC在其解决方案中指出的那样设置multipartFormData。XCode尝试强制转换到.data()之前的任何对象,因此

value.data(using: String.Encoding.utf8)!, withName: key

我做的

[replace_your_var_name_here].data(using: String.Encoding.utf8)!, withName: key

在我的例子中,我的var列表并不大,所以硬编码是一个选择。

王高超
2023-03-14

试试这个,网址设置为@pedrouan说。

Alamofire.upload(multipartFormData: { (multipartFormData) in
       multipartFormData.append(imageData, withName: "xyz", fileName: "file.jpeg", mimeType: "image/jpeg")
}, to: url) 
{ (result) in
      //result
}
籍永安
2023-03-14

例如,在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
    })

所以需要通过URL请求传递:

let URL = try! URLRequest(url: "http://example.com", method: .get, headers: headers)
 类似资料:
  • 我使用CordovaHttp插件在我的科尔多瓦应用程序基于angular1进行API调用。我使用下面的URL以用户名和密码作为参数进行身份验证的帖子请求。 在android和邮递员中发出请求时,一切正常。但当我在ios上发出相同的请求时,它会失败,并出现以下错误: 如果我从上面的url中删除端口443,一切正常。我不知道为什么iOS会出现这种情况,也不知道如何解决这个问题。 我想使用端口号,因为我

  • 我试图用python写的lambda (aws)完成多部分上传。下面是我正在使用的代码。大约有120个部件,总大小为30GB。下面的操作似乎没有在5分钟内完成,因此lambda关闭,上传似乎没有完成。S3提供异步多部分上传功能吗?我相信这将确保文件得到合并,不管lambda关闭。

  • 是否可以在比1级更深的级别上进行具有雄辩能力的多级关系查询?我的桌子是这样的: post_comments- 发表评论或回复- 使用者- 用户数据- 所以我想问是不是有可能得到一个帖子的评论与所有的回复和用户数据的人谁回答了评论1查询与雄辩。 这就是我的评论模型的样子: 当我得到一条评论的所有用户数据时,我想得到回复者的所有用户数据。我真的很抱歉,如果这个问题已经在其他地方发布或记录,但我似乎无法

  • 我正在尝试通过angle 4上传一个带有pdf文件的表单 该请求是一个多部分/表单数据请求 我正在使用springboot、apachecamelservlet,我的路径是 在我的处理器中 然后我正在尝试写入如下文件: 无论我怎么尝试,文件总是被破坏。无法在Acrobat reader中打开。

  • 问题内容: Mojarra与Sun的JSF参考实现有何不同? 只是更高版本吗?它仅仅是重命名吗? 问题答案: 从开始到版本1.2_08为止,Sun JSF参考实现(也称为Sun JSF RI)都被这样命名,只是“ JSF RI”。开发团队发现它是一个非常无聊且无话可说的名字。他们想参加产品代码名称炒作的宣传,并希望使其与JSF RI 所属的“ Glassfish” 项目保持一致。经过一些用户社区民