菜鸟教程小白 发表于 2022-12-11 19:40:01

php - swift3 - 将图像上传到网络服务器


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

<pre><code>func createBodyWithParameters(_ parameters: ?, filePathKey: String?, imageDataKey: Data, boundary: String) -&gt; Data {
      var body = Data();

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

      let filename = &#34;user-profile.jpg&#34;

      let mimetype = &#34;image/jpg&#34;

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



      body.append(Data(&#34;--\(boundary)--\r\n&#34;))

      return body as Data
    }
</code></pre>

<p>谁能解释我做错了什么?谢谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你不能像这样初始化数据:</p>

<pre><code>Data(&#34;foo&#34;)
</code></pre>

<p>你可以做的是:</p>

<pre><code>Data(&#34;foo&#34;.utf8)
</code></pre>

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

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

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

<p>用法:</p>

<pre><code>body.appendString(&#34;foo&#34;)
</code></pre>

<p>只需像这样初始化正文:</p>

<pre><code>var body = NSMutableData()
</code></pre>

<p>然后像这样返回</p>

<pre><code>return body as Data
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于php - swift3 - 将图像上传到网络服务器,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/43967087/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/43967087/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: php - swift3 - 将图像上传到网络服务器