0

Blobstore API에서 파일을 제공 할 때마다이 문제가 여러 번 발생했습니다. 그것은 언제나처럼 다운로드 :GAE Blobstore에서 파일 제공

serve.fileNameExtention

우리가 봉사 또는 우리가 그것을 저장 한 이름으로 파일을 다운로드 할 수있는 가능한 방법이있다. 가능한 경우 내가 인터넷을 통해 검색 한하지만 난 그것을 위해 어떤 해결책을 찾을 수 없기 때문에

즉 someName.docx

, 어떻게 그것을 말해주십시오.

+0

는 만 나는이 물었다. https://developers.google.com/appengine/docs/java/blobstore/overview#Serving_a_Blob 어디서나이 솔루션 만 있습니다. –

답변

3

설정을 : 나는 모든 이상을 검색 한

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); 
    } 
+0

고맙습니다. 솔루션 선생님 .. !!! –

0

파일을 제공하는 url의 파일 이름을 변경해야합니다. urlRewriteFilter (https://code.google.com/p/urlrewritefilter/)와 같은 것을 사용하여 URL을 다시 작성하여 "서빙"서블릿을 사용할 수 있지만 서블릿 밖으로 나가는 URL은 다음과 같이 바꿀 수 있습니다. 네가 원하는대로하자. 헤더

+0

글쎄요, 서브 메서드는 blobKey만을 받아들이므로 파일의 이름으로는 아무 것도 할 수 없습니다. –

1
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);