2012-12-03 5 views
5

私はすべての種類のファイルをダウンロードするための準備をしたい... JSPで任意のファイル形式をダウンロードする方法はあり...jspでファイル形式をダウンロードするには、コンテンツタイプはどうすればよいですか?

マイコードスニペット:

String filename = (String) request.getAttribute("fileName");   
    response.setContentType("APPLICATION/OCTET-STREAM"); 
    String disHeader = "Attachment"; 
    response.setHeader("Content-Disposition", disHeader); 

    // transfer the file byte-by-byte to the response object 
    File fileToDownload = new File(filename); 
    response.setContentLength((int) fileToDownload.length()); 
    FileInputStream fileInputStream = new FileInputStream(fileToDownload); 
    int i = 0; 
    while ((i = fileInputStream.read()) != -1) { 
     out.write(i); 
    } 
    fileInputStream.close(); 

私がように、setContentTypeを指定した場合アプリケーション/ OCTET-STREAM、pdf、text、docファイルがダウンロードされています....しかし、問題は画像ファイルです...

画像ファイルにはどのような問題がありますか?私は おかげで...

+2

しようとすると、 'response.setHeader( "コンテンツ・処分"、「添付ファイルをありがとう。ファイル名= "+ファイル名); ' – adatapost

+2

[画像のMIMEタイプのばらつきがあります](http://www.webmaster-toolkit.com/mime-types.shtml)、それは特定の金額になります – Makoto

+0

@AVD:私はそれを試みました...それは助けません:( – loknath

答えて

3

最後に、私は何とかこれを行うために管理... 問題は、JSPのである」ために、このリンクをチェックアウトすることができますに、setContentType(画像/ JPG)を使用してくださいイメージのため

1

0:コードスニペットがある

私は、JSP、サーブレットを使用してファイル置き換え

...

書き込みバイトストリームに対応していないOut.write」、...今

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    try { 
     String filename = (String) request.getAttribute("fileName"); 
     response.setContentType("application/octet-stream"); 
     response.setHeader("Content-Disposition", 
       "attachment;filename="+filename); 

     File file = new File(filename); 
     FileInputStream fileIn = new FileInputStream(file); 
     ServletOutputStream out = response.getOutputStream(); 

     byte[] outputByte = new byte[(int)file.length()]; 
     //copy binary contect to output stream 
     while(fileIn.read(outputByte, 0, (int)file.length()) != -1) 
     { 
     out.write(outputByte, 0, (int)file.length()); 
     } 
    } 

私はすべての種類のファイルをダウンロードすることができます....

responces :)

関連する問題