2

我有一个使用 NanoHTTPD 提供 HTML 上下文的 android 应用程序。我在我的应用程序中使用NanoHTTP 2.0.5

文件上传有问题。假设我上传了一个名为kr d.mp4的文件;它被上传但重命名为k(从空格前的一个字符开始,直到文件名中的最后一个字符,包括扩展名被删除)。

任何有空间的文件上传都会显示这种行为。我尝试了其他文件名:

 ORIGINAL         GOT THIS
-----------------------------
NO_SPACE.TXT      NO_SPACE.TXT  (works as expected)
ABC DEF.txt       AB
AB1234 gf.txt     AB123
A D.txt           Failed to upload ???

我该如何解决这个问题?

4

1 回答 1

1

我在 IRC 频道#android-dev的帮助下得到了用户的帮助:memoryleak。这是一个与编码相关的问题。

要修复它,请在上传时执行此操作:

客户端(Javascript):

formdata.append("filedata", file, encodeURIComponent(file['name']));

服务器端(NanoHTTPD):

URLDecoder.decode(session.getParms().get(entry.getKey()), "UTF-8");
于 2014-01-06T12:11:50.837 回答