我的GWT& App Engine应用程序,基本上是用户上传的文件表。
以下是BlobServiceImpl的doGet函数的最后一部分,它在用户请求时为blob提供服务:
// got the entity already
filename = (String) entity.getProperty("filename");
resp.addHeader("Content-Disposition", "filename=" + filename);
blobstoreService.serve(blobKey, resp);
上面的代码从实体元数据中获取文件名,在HttpServletResponse中设置文件名,然后提供实际的blob。
我遇到的问题是,对于文件名中有空格的文件,Firefox只将文件名设置为第一个单词 - 排除空格后的所有内容。这非常令人讨厌,因为名为“My Amazing File.xls”的文件将保存为“我的”。
或许与字符编码有关?奇怪的是它在其他浏览器中运行良好。
感谢您的帮助:)
答案 0 :(得分:1)
正如Amy所说,这是一个Firefox问题,与App Engine无关。
更改此内容:
resp.addHeader("Content-Disposition", "filename=" + filename);
对此:
resp.addHeader("Content-Disposition", "filename=\"" + filename + "\"");
解决了我的问题。
快乐的编码!
答案 1 :(得分:0)
您可能希望在文件名上使用urlencode函数,以便" "成为"%20"。