使用 Alamofire 将图像作为 base64String 上传

Posted

技术标签:

【中文标题】使用 Alamofire 将图像作为 base64String 上传【英文标题】:Uploading image as a base64String using Alamofire 【发布时间】:2019-03-31 09:04:11 【问题描述】:

ios 12,Xcode:10,Swift-4

将大尺寸图片作为 Base64String 上传到服务器时出错。

它可以很好地处理小文件

▿ 一些:AFError

▿ responseValidationFailed : 1 element
  ▿ reason : ResponseValidationFailureReason
    ▿ unacceptableStatusCode : 1 element
      - code : 413

我只想将图片作为 base64string 上传,而不是作为多部分数据。

你能指导我吗?

【问题讨论】:

状态码 413 表示您的请求过大。我假设您在请求中错误地发送了 base64 字符串而不是其正文。但是如果没有看到您的代码,这很难说。 【参考方案1】:

您可以在请求本身中发送您的参数,因此为您的请求创建的 URI 变得太长,这会导致 413 服务器错误。 你应该在请求正文中发送你的参数,而不是使用这行代码:

request.httpBody = parameters.percentEscaped().data(using: .utf8)

我再次告诉你,确保不要将参数直接附加到请求 url。

【讨论】:

以上是关于使用 Alamofire 将图像作为 base64String 上传的主要内容,如果未能解决你的问题,请参考以下文章

使用 Alamofire Swift 3 上传图像 (Base64)

将带有其他参数的图像的 base64String 快速发布到服务器

如何使用节点 js 将 base64 数据作为图像上传到 s3?

将 base64 图像作为图像发送到 RestApi (MultiPart)

将图像(base64 字符串)作为文件流上传到 Web API

AngularJS:用于将动态 base64 编码图像作为背景图像的 ng-class