我正在尝试使用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”
答案 0 :(得分:0)
事实证明,文件名* = utf-8''实际上是一个标准:http://tools.ietf.org/html/rfc6266#section-4.3
因为某些原因,后端有一个错误,就是没有正确阅读