2012-01-22 5 views
-4

私は以下のサーブレットにダウンロードリンクを作成するためのコードを試しています。しかし、これは動作していません。 image/jpegに...サーブレットのdowloadリンク

public class Downlord1 extends HttpServlet { 
    int BYTES_DOWNLOAD=1024; 
protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try { 
     response.setHeader("Content-Disposition","attachment;Filename=dp.jpg"); 
     ServletContext ctx=getServletContext(); 
     InputStream is=ctx.getResourceAsStream("/images/krishna.jpg"); 
     int read=0; 
     byte[] bytes=new byte[BYTES_DOWNLOAD]; 
     OutputStream os=response.getOutputStream(); 
     while((read=is.read(bytes))!=-1) 
     { 
     os.write(bytes,0, read); 

     } 
     os.flush(); 
     os.close(); 


    } finally {    
     out.close(); 
    } 
} 

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
/** 
* Handles the HTTP <code>GET</code> method. 
* @param request servlet request 
* @param response servlet response 
* @throws ServletException if a servlet-specific error occurs 
* @throws IOException if an I/O error occurs 
*/ 
@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

/** 
* Handles the HTTP <code>POST</code> method. 
* @param request servlet request 
* @param response servlet response 
* @throws ServletException if a servlet-specific error occurs 
* @throws IOException if an I/O error occurs 
*/ 
@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

/** 
* Returns a short description of the servlet. 
* @return a String containing servlet description 
*/ 
@Override 
public String getServletInfo() { 
    return "Short description"; 
}// </editor-fold> 

}

+5

何が問題なのですか?あなたは何をすることを期待していますか?代わりに何をしますか?例外はありますか?もしそうなら、スタックトレースは何ですか? –

+1

万が一私たちにお金を払っているのですか? – emaillenin

答えて

2

変更コンテンツの種類を確認するか、私に別のコードや方法を教えてください。

PrintWriter out = response.getWriter();を削除してください。使用されていないため、response.getWriterまたは.getOutputStreamを複数回呼び出す際に問題が発生する可能性があります。

関連する問題