我将使用Google应用引擎Blobstore来存储上传的文件。文件类型可以是任何类型(.txt,.pdf,.docx等)。
我写了以下Servlet来下载存储在Google应用引擎Blobstore中的文件。
public class Serve extends HttpServlet {
private BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
公共的无返回值方法doGet(HttpServletRequest req, HttpServletResponse res) throws IOException {
BlobKey blobKey = new BlobKey(req.getParameter("blob-key"));
blobstoreService.serve(blobKey, res);
}
每次我通过以下方式提供url请求文件时, http://127.0.0.1:8888/serve?blob-key=DEHQ3U_2wtUdEL7XPI434Q 文件都能够成功下载。但是文件没有扩展名,并且文件名总是“serve”。该怎么做才能下载上传的文件并保留原始文件名呢? 谢谢。
BlobInfo
实体,可以使用blob-key获取。 BlobInfo实体存储上传文件的原始文件名,可以通过getFilename
访问。 - Chris Farmiloe