从Firefox中的Google AppEngine Blobstore下载时,为什么文件名不完整?

时间:2012-08-02 11:34:17

标签: google-app-engine firefox blobstore

我的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”的文件将保存为“我的”。

或许与字符编码有关?奇怪的是它在其他浏览器中运行良好。

感谢您的帮助:)

2 个答案:

答案 0 :(得分:1)

正如Amy所说,这是一个Firefox问题,与App Engine无关。

更改此内容:

resp.addHeader("Content-Disposition", "filename=" + filename);

对此:

resp.addHeader("Content-Disposition", "filename=\"" + filename + "\"");

解决了我的问题。

快乐的编码!

答案 1 :(得分:0)

您可能希望在文件名上使用urlencode函数,以便" "成为"%20"。

相关问题