Javascript Windows商店应用程序和非ascii文件名上传

时间:2014-01-02 23:55:28

标签: javascript file-upload windows-store-apps

我正在尝试使用Windows应用商店应用程序将文件上传到Apache服务器。 Ascii文件名工作正常,但任何其他外来字符都不起作用,Apache正在抛出400。

使用Windows.Networking.BackgroundTransfer.BackgroundUploader以标准Windows存储方式上载文件,然后从文件创建BackgroundTransferContentPart。

  var uploader = new Windows.Networking.BackgroundTransfer.BackgroundUploader();
  var part = new Windows.Networking.BackgroundTransfer.BackgroundTransferContentPart('file',  file.name);
  part.setFile(file);
  var parts = [ part ];
  uploader.createUploadAsync(url, parts).then(callback)

使用ajax请求在javascript中上传可以正常使用非ascii文件名。 有没有人在Windows应用程序中遇到过这个?

编辑:我得到了小提琴工作,这里是请求正文的一部分:

Content-Disposition: form-data; name="file"; filename*=utf-8''%C3%BCf.txt

它正在发送格式错误的请求,这就是为什么apache会拒绝它。 “文件名”部分格式不正确,应该像filename =“üf.txt”

1 个答案:

答案 0 :(得分:0)

事实证明,文件名* = utf-8''实际上是一个标准:http://tools.ietf.org/html/rfc6266#section-4.3

因为某些原因,后端有一个错误,就是没有正确阅读