struts2  result="stream''文件下載

action:
 public String downloadHelp() {
   try {
    URL  url = new URL(picUrl);  //圖片路徑
    BufferedImage image;
    image = ImageIO.read(url);
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    ImageIO.write(image, "jpg", os);
    fileName=new String("排期圖片下載.jpg".getBytes(), "ISO8859-1"); //中文編碼防止亂碼
    imageStream = new ByteArrayInputStream(os.toByteArray());//轉換爲圖片流
   } catch (Exception e) {
  
   }
  return SUCCESS;
 }

xml文件:
<action name="downloadHelp" class="QRCodeAction" method="downloadHelp">
  <result name="success" type="stream"><!--type 爲 stream 應用 StreamResult 處理 -->
   <param name="contentType">jpg</param><!--默認爲 text/plain -->
   <param name="inputName">imageStream</param>

   <!-- 默認爲 inline(在線打開),設置爲 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文 件保有存時的文件名,若未指定將會是以瀏覽的頁面名作爲文件名,如以
    download.action 作爲文件名, 這裏使用的是動態文件名,${fileName}, 它將通過 Action 的 getFileName()
    獲得文件名 -->
   <param name="contentDisposition">attachment;filename="${fileName}"</param>
   <param name="bufferSize">2048</param><!-- 輸出時緩衝區的大小 -->
  </result>
 </action>


jsp:
調用:
ajax也可以.

 window.location.href="downloadHelp?picUrl="+imgData;    也可以
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章