[英]Serve File from GAE Blobstore
每当我们从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更改为无论您希望他们成为什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.