【问题标题】:Download Blob from BlobStore in AppEngine with Filename使用文件名从 App Engine 中的 Blob 存储下载 Blob
【发布时间】:2012-10-31 10:47:10
【问题描述】:

文件存储在 Appengine Blobstore 中。我有一个 servlet 处理程序来允许用户下载文件。我使用 BlobStoreService 来执行此操作。

在我的 servlet 中,我有以下内容:

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = new BlobKey( "SOME_BLOB_KEY_HERE" );
blobstoreService.serve(blobKey, res);

完美运行。下载文件的文件名来自servlet映射。

如何在我的servlet中设置文件的文件名?

【问题讨论】:

    标签: google-app-engine servlets blobstore


    【解决方案1】:

    您需要在响应中添加“Content-Disposition”标头:

    BlobstoreServiceFactory.getBlobstoreService().serve(blobKey, resp);
    BlobInfo blobInfo = new BlobInfoFactory().loadBlobInfo(blobKey);
    
    String encodedFilename = URLEncoder.encode(blobInfo.getFilename(), "utf-8");
    encodedFilename.replaceAll("\\+", "%20");
    resp.setContentType("application/octet-stream");
    
    resp.addHeader("Content-Disposition", "attachment; filename*=utf-8''" + encodedFilename );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-25
      • 2015-06-20
      • 2020-01-01
      • 2021-12-08
      • 2021-07-15
      • 2020-08-08
      相关资源
      最近更新 更多