我有一个使用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 ???
如何解决此问题?
答案 0 :(得分:1)
我得到了这个工作,用户的帮助来自IRC频道 #android-dev : memoryleak 。这是一个编码相关的问题。
要解决此问题,请在上传时执行以下操作:
客户端(Javascript):
formdata.append("filedata", file, encodeURIComponent(file['name']));
服务器端(NanoHTTPD):
URLDecoder.decode(session.getParms().get(entry.getKey()), "UTF-8");