2

外部 JSP(Second.jsp) ファイルから取得した画像があります。ボタンは First.jsp にあります。ボタンをクリックすると、画像がダウンロードされます。コンテンツタイプを変更してどうすればいいですか??

First.jsp:

   <div id="first">
      <button id="submit"> Download Image</button>
      <jsp:include page="second.jsp"></jsp:include>
   </div>

Second.jsp:

    <img alt="Input Voltage" src="/solarether/GraphsServlet?date=<%=date%>&date1=<%=date1%>&siteId=<%=siteID%>&type=<%=type%> height="300" width="600">
4

2 に答える 2

1

ダウンロード ボタンをクリックすると、サーブレットが呼び出され、応答ファイルがストリームに設定されます。ファイルがダウンロードされます。doGet または doPost メソッドでコードを実装します

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    File file = new File(filePath);
    int length   = 0;
    ServletOutputStream outStream = response.getOutputStream();
    ServletContext context  = getServletConfig().getServletContext();
    String mimetype = context.getMimeType(filePath);

    // sets response content type
    if (mimetype == null) {
        mimetype = "application/octet-stream";
    }
    response.setContentType(mimetype);
    response.setContentLength((int)file.length());
    String fileName = (new File(filePath)).getName();

    // sets HTTP header
    response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

    byte[] byteBuffer = new byte[BUFSIZE];
    DataInputStream in = new DataInputStream(new FileInputStream(file));

    // reads the file's bytes and writes them to the response stream
    while ((in != null) && ((length = in.read(byteBuffer)) != -1))
    {
        outStream.write(byteBuffer,0,length);
    }

    in.close();
    outStream.close();
}
于 2013-09-23T07:16:09.893 に答える
0

js が必要な場合があります。Jsp は次のようになります。

   <div id="first">
      <button id="submit"> Download Image</button>
      <jsp:include page="second.jsp"></jsp:include>
      <script>
         $("#submit").click(function(){
            window.location.href=$(this).siblings("img").attr("src");   
         })
      </script>
   </div>
于 2013-09-23T08:47:17.677 に答える