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



我的GWT&应用程序引擎应用程序,基本上是用户上传的文件表。

以下是BlobServiceImpl的doGet函数的最后一部分,它在用户请求时为Blob提供服务:

    // got the entity already
    filename = (String) entity.getProperty("filename");
    resp.addHeader("Content-Disposition", "filename=" + filename);
    blobstoreService.serve(blobKey, resp);

上面的代码从实体元数据中获取文件名,在HttpServlet响应中设置文件名,然后为实际的blob提供服务。

我遇到的问题是,对于文件名中有空格的文件,Firefox只将文件名设置为第一个单词——空格后的所有内容都被排除在外。这很烦人,因为一个名为"My Amazing file.xls"的文件将被保存为"My"。

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

感谢您的帮助:)

正如Amy所说,这是Firefox的问题,与应用程序引擎无关。

更改此项:

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

对此:

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

解决了我的问题。

编码快乐!

您可能需要对文件名使用urlencode函数,以便"变成"%20"。

最新更新