2012-11-11 5 views
1

인 AppEngine의 BlobStore에서 Blob 다운로드 Appengine Blobstore에 파일이 저장됩니다. 나는 사용자가 파일을 다운로드 할 수 있도록하는 서블릿 핸들러를 가지고있다. BlobStoreService를 사용하여이 작업을 수행했습니다.파일 이름이

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

그것은 완벽하게 작동합니다 : 내 서블릿에서

, 나는 다음과 같은 있습니다. 다운로드 한 파일의 파일 이름은 서블릿 매핑에서 가져온 것입니다.

내 서블릿에서 파일의 파일 이름을 설정하는 방법은 무엇입니까?

답변

6

당신은 응답에 "내용 - 처리"헤더를 추가해야합니다

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); 
관련 문제