1

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

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

感谢您的帮助:)

4

2 回答 2

1

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

改变这个:

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

对此:

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

解决了我的问题。

快乐编码!

于 2012-08-09T09:53:01.743 回答
0

您可能希望对文件名使用 urlencode 函数,以使“”变为“%20”。

于 2012-08-02T11:38:45.927 回答