最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java、javascript實現附件下載示例

 更新時間:2014年08月14日 17:34:30   投稿:whsnow  
在web開發(fā)中,經常需要開發(fā)“下載”這一模塊,下面使用java、javascript實現附件下載,需要的朋友可以參考下

在web開發(fā)中,經常需要開發(fā)“下載”這一模塊,以下給出一個簡單的例子。

在服務器端,使用java開發(fā):

@RequestMapping(value = "download.html", method = RequestMethod.GET) 
public void download(String resourceid, HttpServletRequest request, HttpServletResponse response) { 
response.setContentType("charset=UTF-8"); 
File file = new File(path); 
response.setHeader("Content-Disposition", "attachment; filename=a"); 
BufferedInputStream bis = null; 
BufferedOutputStream bos = null; 
OutputStream fos = null; 
InputStream fis = null; 
try { 
fis = new FileInputStream(file.getAbsolutePath()); 
bis = new BufferedInputStream(fis); 
fos = response.getOutputStream(); 
bos = new BufferedOutputStream(fos); 
int bytesRead = 0; 
byte[] buffer = new byte[5 * 1024]; 
while ((bytesRead = bis.read(buffer)) != -1) { 
bos.write(buffer, 0, bytesRead); 
} 
bos.flush(); 
}catch(E e){ 
}finally { 
try { 
bis.close(); 
bos.close(); 
fos.close(); 
fis.close(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 
}

當我們在前端請求這個地址時,服務器先找出文件,設置響應頭,然后通過流輸出到瀏覽器端。

瀏覽器在頭中發(fā)現該響應的主體是流文件,則自動會調用另存為的窗口,讓用戶保存下載。

這里有個關鍵就是Content-Disposition這個頭屬性,Content-Disposition是MIME協(xié)議的擴展,用于指示如何讓客戶端顯示附件的文件。

它可以設置為兩個值:

inline //在線打開

attachment //作為附件下載

這里我們設置的值為attachment,所以可以被識別為附件并下載。

上面講了如何寫服務器端,下面講前端如何請求。

前端請求有三種方式:

1.Form

<form action='download.html' method='post'> 
<input type='submit'/> 
</form>

2.iframe

var iframe = "<iframe style='display:none' src='download.html'></iframe>" 
body.append(iframe);

​當iframe被append到body中時,會自動請求下載鏈接。

3.open

window.open("download.html");

相關文章

  • 使用BootStrap實現表格隔行變色及hover變色并在需要時出現滾動條

    使用BootStrap實現表格隔行變色及hover變色并在需要時出現滾動條

    這篇文章主要介紹了使用BootStrap實現表格隔行變色及hover變色并在需要時出現滾動條效果,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-01-01
  • JS運動改變單物體透明度的方法分析

    JS運動改變單物體透明度的方法分析

    這篇文章主要介紹了JS運動改變單物體透明度的方法,結合實例形式分析了頁面元素屬性動態(tài)修改相關操作技巧,需要的朋友可以參考下
    2018-01-01
  • IE6-IE9使用JSON、table.innerHTML所引發(fā)的問題

    IE6-IE9使用JSON、table.innerHTML所引發(fā)的問題

    這篇文章主要介紹了IE6-IE9使用JSON、table.innerHTML所引發(fā)的問題 ,需要的朋友可以參考下
    2015-12-12
  • D3.js實現文本的換行詳解

    D3.js實現文本的換行詳解

    相信大家都知道在SVG中添加文本是使用text元素。但這個元素不能夠自動換行,超出的部分就顯示不出來了,怎么辦呢?下面通過這篇文章來給大家詳細介紹下實現的過程。
    2016-10-10
  • JavaScript:void(0)用法及一些常見問題解決辦法

    JavaScript:void(0)用法及一些常見問題解決辦法

    這篇文章主要介紹了javascript:void(0)在JavaScript中的用法,探討了其防止鏈接默認行為的作用,提供了使用示例,并針對常見問題如與#的區(qū)別、事件綁定和鍵盤訪問進行了講解,需要的朋友可以參考下
    2024-12-12
  • 微信小程序實現獲取手機號60s倒計時

    微信小程序實現獲取手機號60s倒計時

    這篇文章主要為大家詳細介紹了微信小程序實現獲取手機號60s倒計時,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JavaScript對象訪問器的工作原理及使用方法

    JavaScript對象訪問器的工作原理及使用方法

    今天來聊一下JavaScript中的對象訪問器,JavaScript的主要功能之一是能夠定義對象,這些對象可以封裝屬性和方法,本文將深入探討 JavaScript 對象訪問器是什么、它是如何工作的以及使用對象訪問器的作用,需要的朋友可以參考下
    2024-06-06
  • js函數排序的實例代碼

    js函數排序的實例代碼

    這篇文章介紹了js函數排序的代碼,有需要的朋友可以參考一下
    2013-07-07
  • IE6下javasc#ipt:void(0) 無效的解決方法

    IE6下javasc#ipt:void(0) 無效的解決方法

    本篇文章主要是對IE6下javasc#ipt:void(0) 無效的解決方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • JS利用?clip-path?實現動態(tài)區(qū)域裁剪功能

    JS利用?clip-path?實現動態(tài)區(qū)域裁剪功能

    這篇文章主要介紹了JS利用?clip-path?實現動態(tài)區(qū)域裁剪功能,文中主要通過使用 box-shadow 實現,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12

最新評論

比如县| 独山县| 鞍山市| 富源县| 郁南县| 申扎县| 英山县| 鄂州市| 龙泉市| 沧源| 当阳市| 永年县| 乡城县| 海林市| 石嘴山市| 札达县| 正镶白旗| 巩留县| 华宁县| 定州市| 崇文区| 诸暨市| 中方县| 内乡县| 栾川县| 南雄市| 怀化市| 依兰县| 广德县| 扶余县| 额济纳旗| 鄯善县| 洪江市| 沾化县| 阜城县| 绥中县| 习水县| 洪泽县| 巴马| 富顺县| 灌云县|