【问题标题】:handling file uploads sent via xhr using play framework v2.4使用 play framework v2.4 处理通过 xhr 发送的文件上传
【发布时间】:2016-02-15 06:08:12
【问题描述】:

我正在使用播放框架 v2.4,并且正在测试通过 Web 表单发送的文件上传(通过 Angular 进行 xhr 调用)。我在播放框架控制器中尝试了以下两个选项(基于https://www.playframework.com/documentation/2.4.x/JavaFileUpload),但两个选项都不起作用(我还添加了我尝试过的 curl 示例,但我无法获得对文件的引用 - 它始终为空)。在任何一种情况下,MultipartFormData/File 都为空。
谢谢

MultipartFormData body = request().body().asMultipartFormData();

File file = request().body().asRaw().asFile();

我使用的curl命令如下(可以看到curl发送的文件数据):

curl -v --cookie "Auth-Token=dc6eb764-4436-4571-b4bf-8cf5dg36b71b" -F "doc=@/home/test/docs/books/play2.pdf" https://local.test.com/a/api/contact/abc/test

【问题讨论】:

  • 问题在于客户端在 JS 中上传 - 文件从未到达服务器。修复 curl 命令让我可以在服务器上测试文件上传
  • 阿里,您能否将您如何调试它作为您自己问题的答案(而不仅仅是评论)的一部分发布?

标签: angularjs file-upload playframework-2.0 asyncfileupload angular-file-upload


【解决方案1】:

问题在于未上传文件的客户端 JS 代码。以下工作:

MultipartFormData body = request().body().asMultipartFormData();

用 curl 测试

curl -v --cookie "Auth-Token=dc6eb764-4436-4571-b4bf-8cf5dg36b71b" -F "doc=@/home/test/docs/books/play2.pdf" https://local.test.com/a/api/contact/abc/test

【讨论】:

    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 2011-12-27
    • 2018-02-13
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    相关资源
    最近更新 更多