OGeek|极客世界-中国程序员成长平台

标题: php - swift3 - 将图像上传到网络服务器 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 19:40
标题: php - swift3 - 将图像上传到网络服务器

我正在尝试将从 UIImagePickerController 中选择的图像上传到我在 AWS 上托管的 Web 服务器。我正在关注本教程:https://www.udemy.com/swift-php-mysql-user-sign-up-sign-in-sign-out-and-more/learn/v4/overview我收到一堆 Argument labels '(_' do not match any available overloads 错误。我尝试搜索此错误,但没有找到与我当前代码相关的任何内容。我没有使用教程中的原始代码,我正在尝试将其翻译为 Swift3 并使用以下答案:iOS swift NSMutableData has no member appendString遵循最佳编码实践。这是我当前的代码:

func createBodyWithParameters(_ parameters: [String: String]?, filePathKey: String?, imageDataKey: Data, boundary: String) -> Data {
        var body = Data();

        if parameters != nil {
            for (key, value) in parameters! {
                body.append(Data("--\(boundary)\r\n"))
                body.append(Data("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n"))
                body.append(Data("\(value)\r\n"))
            }
        }

        let filename = "user-profile.jpg"

        let mimetype = "image/jpg"

        body.append(Data("--\(boundary)\r\n"))
        body.append(Data("Content-Disposition: form-data; name=\"\(filePathKey!)\"; filename=\"\(filename)\"\r\n"))
        body.append(Data("Content-Type: \(mimetype)\r\n\r\n"))
        body.append(imageDataKey)
        body.append(Data("\r\n"))



        body.append(Data("--\(boundary)--\r\n"))

        return body as Data
    }

谁能解释我做错了什么?谢谢!



Best Answer-推荐答案


你不能像这样初始化数据:

Data("foo")

你可以做的是:

Data("foo".utf8)

就像您提供的链接一样。 (您缺少 .utf8)

编辑:是的,那家伙说他不想使用那个代码,但是听我说,这个版本的扩展不允许有损连接,只要你在字符串中写任何东西,数据就永远不会为零。

extension NSMutableData {
   func appendString(_ string: String) {
        let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false)
        append(data!)
    }
}

用法:

body.appendString("foo")

只需像这样初始化正文:

var body = NSMutableData()

然后像这样返回

return body as Data

关于php - swift3 - 将图像上传到网络服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967087/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4