使用Alamofire将个人资料图片发布到Laravel服务器

时间:2019-02-27 03:29:32

标签: ios swift file-upload alamofire

我正在尝试将文件上传到后端。 编辑

我停滞了这段代码。我觉得我做错了。它的返回(状态代码:400,标题),这使我相信错误出在标题中,但是我可能完全错了,因为我看到人们使用.upload()而不是.request。我基于这两种方法制作了2个函数,但没有一个起作用。 .request是错误400,upload()是错误500。我已经尝试了L5 Swagger中的访问令牌,并且可以正常工作。唯一的参数是我认为是数据的文件。这是方法

@discardableResult
  public func postUploadSeekerAvatar(_ image: UIImage, result: @escaping (Error?) -> Void) -> URLSessionTask? {
    let imageData: Data = UIImagePNGRepresentation(image)!
    let params: [String: Any] = ["data": imageData]
    var headers = authHeader
    headers?["Content-Type"] = "application/json"
    return Alamofire.request(endpointURL("users/seeker/avatar"), method: .post, parameters: params, headers: headers)
      .responseData(completionHandler: { (response: DataResponse<Data>) in
        guard response.result.error == nil else {
          return result(response.result.error)
        }
        return result(response.result.error)
      }).task
  }

  @discardableResult
  public func postSeekerAvatar(_ image: UIImage, result: @escaping (Error?) -> Void) -> URLSessionTask? {
    let data = UIImagePNGRepresentation(image)!
    var headers = authHeader
    headers?["Content-Type"] = "application/json"
    return Alamofire.upload(data, to: endpointURL("users/seeker/avatar"), method: .post, headers: headers)
      .responseData(completionHandler: { (response: DataResponse<Data>) in
        guard response.result.error == nil else {
          return result(response.result.error)
        }
        return result(response.result.error)
      }).task
  }

先生和女士,您能帮忙一个新手吗?谢谢!

0 个答案:

没有答案