每当我们从 Blobstore API 提供文件时,我都曾多次遇到过这个问题。它总是被下载为:
serve.fileNameExtention
是否有任何可能的方式可以使用我们保存的名称提供或下载文件。
即 someName.docx
如果可能,请告诉我该怎么做,因为我已经在互联网上搜索过,但我找不到任何解决方案。
每当我们从 Blobstore API 提供文件时,我都曾多次遇到过这个问题。它总是被下载为:
serve.fileNameExtention
是否有任何可能的方式可以使用我们保存的名称提供或下载文件。
即 someName.docx
如果可能,请告诉我该怎么做,因为我已经在互联网上搜索过,但我找不到任何解决方案。
将其设置在标题中:
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); //example
String filename = "someName.docx";
res.setHeader("Content-Disposition", "attachment; filename=\"" +fileName +\"");
blobstoreService.serve(blobKey, res);
}
BlobKey blobKey = new BlobKey(key);
BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);
// set response header
response.setContentType(blobInfo.getContentType());
response.setHeader("Content-Disposition", "filename=" + blobInfo.getFilename());
// serve blob
blobService.serve(blobKey, response);
您必须更改提供文件的 url 中的文件名。您可以使用 urlRewriteFilter (https://code.google.com/p/urlrewritefilter/) 之类的东西来重写 url,以允许您仍然使用“服务”servlet,但在离开 servlet 时将 url 更改为无论你想让他们成为什么样的人。