【问题标题】:How to build the client side direct file upload to Play Framework (Scala)如何构建客户端直接文件上传到 Play Framework (Scala)
【发布时间】:2015-05-12 19:24:09
【问题描述】:

鉴于其文档中的 Play Framework 示例代码,此处为 https://www.playframework.com/documentation/2.3.x/ScalaFileUpload:

def upload = Action(parse.temporaryFile) { request =>
  request.body.moveTo(new File("/tmp/picture/uploaded"))
  Ok("File uploaded")
}

我将如何在客户端实现这一点?到目前为止,我们一直在做的是多部分文件上传,并将数据模型作为 JSON 请求处理,然后使用多部分二进制流进行处理。这有点复杂,我想简化一下。

所以当我偶然发现上面的内容时,它看起来很棒。但是,我不知道这种联系的“另一面”会是什么样子。

(仅供参考,我们的客户端是 iOS 和 Swift,但显然我真正需要了解的是客户端协议)。

【问题讨论】:

    标签: scala swift upload


    【解决方案1】:

    客户端协议是 HTTP POST,因为文档向我们展示了 HTML 表单。

    例如,请求可能如下所示:

    POST http://localhost:9000/api/upload HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-us,en;q=0.5
    Accept-Encoding: gzip, deflate
    Content-Type: multipart/form-data; boundary=---------------------------41184676334
    Content-Length: 29278
    
    -----------------------------41184676334
    Content-Disposition: form-data; name="file2"; filename="picture.jpg"
    Content-Type: image/jpeg
    
    (Binary data)
    -----------------------------41184676334--
    

    所以你必须在 Swift 中构造一个 POST 请求。也许这个stackoverflow question 或这个gist 可以提供帮助。

    【讨论】:

      猜你喜欢
      • 2022-12-17
      • 1970-01-01
      • 2014-02-21
      • 2014-12-23
      • 2013-04-03
      • 2014-12-16
      • 1970-01-01
      • 2021-06-30
      • 2023-03-03
      相关资源
      最近更新 更多