文件的下載原理是什么?
來源傳智教育2022年04月26日 16時02分30秒
對于文件下載,讀者并不陌生,例如,在某網(wǎng)站下載圖片、下載影片等。現(xiàn)在很多網(wǎng)站都提供了下載各類資源的功能,因此在學習Web開發(fā)過程中,有必要學習文件下載的實現(xiàn)方式。
由于實現(xiàn)文件下載功能比較簡單,通常情況下,不使用第三方組件實現(xiàn),而是直接使用Servlet類和輸入/輸出流實現(xiàn)即可。
可是,與訪問服務器文件不同的是,要實現(xiàn)文件的下載,不僅需要指定文件的路徑,還需要在HTTP中設置兩個響應消息頭,具體如下。
//設定接收程序處理數(shù)據(jù)的方式 Content-Disposition:attachment;filename= //設定實體內容的MIME類型 Content-Type:application/x-msdownload
瀏覽器通常會直接處理響應的實體內容。這時需要在HTTP響應消息中設置兩個響應消息頭字段,指定接收程序處理數(shù)據(jù)內容的方式為下載方式,當單擊“下載”超鏈接時,系統(tǒng)將請求提交到對應的Servlet。在該Servlet中,首先獲取下載文件的地址,并根據(jù)該地址創(chuàng)建文件字節(jié)輸入流,再通過該流讀取下載文件內容,最后將讀取的內容通過輸出流寫到目標文件中。
最新問答
- 2022年06月30日黑盒測試與白盒測試的區(qū)別是啥?
- 2022年06月30日Hive的安裝模式有幾種?
- 2022年06月29日Flume系統(tǒng)要求是什么?
- 2022年06月29日數(shù)據(jù)發(fā)布與訂閱有哪些主要應用場景?
- 2022年06月29日Zookeeper集群角色有哪三種?
- 2022年06月29日hadoop1.x和hadoop2.x的區(qū)別是什么,做了哪些改進?
- 2022年06月28日znode有哪兩種節(jié)點?
- 2022年06月28日非全新集群選舉的過程是什么樣的?
- 2022年06月28日applicationmaster是什么?
- 2022年06月28日yarn的工作流程是什么?
相關問答
- 2022年04月27日培訓機構學java靠譜嗎?
- 2022年04月26日setHeaderEncoding(String encoding)方法和getHeaderEncoding()方法繼承什么類?
- 2022年04月26日誰能闡述一下void write(File file)方法的用途?
- 2022年04月26日DiskFileItemFactory類是用于請求什么的?
- 2022年04月26日String getString()方法有幾個重載定義形式?
- 2022年04月26日String getName()方法和void delete()方法的區(qū)別是什么?
- 2022年04月26日什么是FileItem接口?
- 2022年04月25日valueBound()方法完整語法定義是怎么樣的?
- 2022年04月25日HttpSessionActivationListener接口是什么?
- 2022年04月25日attributeReplaced()語法定義格式是怎么樣的?