文件上传编码遇到文件名称问题。 GWT

问题描述:

我尝试上传文件到我的gwt项目(gae上的服务器)时出现问题。我有FormUpload(com.google.gwt.user.client.ui.FormPanel)结束FileUpload(com.google.gwt.user.client.ui.FileUpload)里面,当然还有服务器端。 问题是当我尝试上传名称包含像“ó”图表的图像。但它很奇怪,因为当我在“ó”上手动更改“ó”时,它会起作用(删除旧的并从我的键盘输入新的,我拥有的图像来自另一个通过邮件发送的人)。文件上传编码遇到文件名称问题。 GWT

在我FormPanel中我有:

setEncoding(FormPanel.ENCODING_MULTIPART); 
setMethod(FormPanel.METHOD_POST); 

我也托盘:

setEncoding(FormPanel.ENCODING_MULTIPART+"; charset=UTF-8"); 

在服务器上,我有:

Map<String, List<BlobKey>> uploads = blobstoreService.getUploads(request); 

和上传大小为0

另外我尝试不推荐使用的方法:

blobstoreService.getUploadedBlobs(request); 

还什么奇怪的是,我可以使用Firefox,但在Chrome,Safari和Opera我可没那么也许它的浏览器错误(BUG)上传相同的图像。

有没有人有类似我的问题?我正在努力解决这个问题,我不知道如何解决这个问题。

您是否尝试过在dev_appserver中运行并注意到任何错误?

我也得到了类似的错误(不完全发生在文件名,但与上载一起提交表单字段)和这里的问题https://code.google.com/p/googleappengine/issues/detail?id=9420&can=4&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log

我猜有些不妥Unicode的处理上blobstore

+0

是的,我试过(通过eclipse插件,GEP),但在本地机器上工作正常。我使用应用程序引擎SDK 1.7.4。 – Mateusz 2013-07-04 06:32:13

+0

另外我不认为这是错误的:_unicode在blobstore_上处理,因为在firefox中一切正常,blobstor是服务器端部分。但有可能我错了。 – Mateusz 2013-07-04 06:51:32

我发现了一个解决方案,您必须设置您的表单和请求字符集的接受字符集。

所以,在视图/复合材料,其中正在创建FormPanel中,添加:

FormElement.as(formPanel.getElement()).setAcceptCharset("UTF-8"); 

在服务器端,处理请求时所设置的要求:

request.setCharacterEncoding("UTF-8"); 
+0

感谢您的回答。不幸的是,我无法再访问代码和这个文件。 – Mateusz 2015-01-04 20:15:38