国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

谷哥的小弟學(xué)后臺(tái)(28)——文件下載

2019-11-06 09:48:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

探索Android軟鍵盤(pán)的疑難雜癥 深入探討Android異步精髓Handler 詳解Android主流框架不可或缺的基石 站在源碼的肩膀上全解Scroller工作機(jī)制


Android多分辨率適配框架(1)— 核心基礎(chǔ) Android多分辨率適配框架(2)— 原理剖析 Android多分辨率適配框架(3)— 使用指南


自定義View系列教程00–推翻自己和過(guò)往,重學(xué)自定義View 自定義View系列教程01–常用工具介紹 自定義View系列教程02–onMeasure源碼詳盡分析 自定義View系列教程03–onLayout源碼詳盡分析 自定義View系列教程04–Draw源碼分析及其實(shí)踐 自定義View系列教程05–示例分析 自定義View系列教程06–詳解View的Touch事件處理 自定義View系列教程07–詳解ViewGroup分發(fā)Touch事件 自定義View系列教程08–滑動(dòng)沖突的產(chǎn)生及其處理


版權(quán)聲明

本文原創(chuàng)作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl

文件下載示例

在此,我們使用HttpServletResponse返回一張照片給客戶端,請(qǐng)看如下示例:

/** * 本文作者:谷哥的小弟 * 博客地址:http://blog.csdn.net/lfdfhl */package cn.com;import java.io.FileInputStream;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestResponsePhoto extends HttpServlet{ @Override PRotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path=getServletContext().getRealPath("/WEB-INF/ZXM.jpg"); FileInputStream fileInputStream = new FileInputStream(path); ServletOutputStream outputStream = response.getOutputStream(); int len=0; byte [] b=new byte[1024]; while((len=fileInputStream.read(b))!=-1){ outputStream.write(b, 0, len); } outputStream.close(); fileInputStream.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { }}

代碼解析如下:

得到文件路徑,請(qǐng)參見(jiàn)代碼第20行得到文件輸入流,請(qǐng)參見(jiàn)代碼第21行從response中獲取到ServletOutputStream作為輸出流,請(qǐng)參見(jiàn)代碼第22行將圖片返回給客戶端,請(qǐng)參見(jiàn)代碼第23-29行

運(yùn)行后,效果如下圖所示:

這里寫(xiě)圖片描述

嗯哼,看到了吧:瀏覽器中顯示了從服務(wù)端獲取的我女朋友的照片

但是,如果想讓用戶下載這張照片該怎么辦呢?請(qǐng)看如下示例:

/** * 本文作者:谷哥的小弟 * 博客地址:http://blog.csdn.net/lfdfhl */package cn.com;import java.io.FileInputStream;import java.io.IOException;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DownPhoto extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String path=getServletContext().getRealPath("/WEB-INF/zxm.jpg"); System.out.println("-----------------> path="+path); String fileName=path.substring(path.lastIndexOf("http://")+1); fileName=URLEncoder.encode(fileName, "UTF-8"); response.setHeader("content-disposition", "attachment;filename="+fileName); response.setHeader("content-type", "image/jpeg"); FileInputStream fileInputStream = new FileInputStream(path); ServletOutputStream outputStream = response.getOutputStream(); int len=0; byte [] b=new byte[1024]; while((len=fileInputStream.read(b))!=-1){ outputStream.write(b, 0, len); } outputStream.close(); fileInputStream.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doPost(req, resp); }}

代碼解析如下:

獲取到文件名稱(chēng),請(qǐng)參見(jiàn)代碼第23行設(shè)置Header指示客戶端下載文件,請(qǐng)參見(jiàn)代碼第24行利用Header設(shè)置響應(yīng)的內(nèi)容的類(lèi)型

嗯哼,待用戶輸入地址后即可下載對(duì)應(yīng)的文件。

除此以外,我們可利用畫(huà)筆在內(nèi)存中創(chuàng)作一張圖片BufferedImage然后再返回給客戶端;有的網(wǎng)站登錄時(shí)的驗(yàn)證碼正是采用該方式實(shí)現(xiàn)的。


參考資料

谷哥的小弟學(xué)后臺(tái)(09)——Servlet(1)

谷哥的小弟學(xué)后臺(tái)(10)——Servlet(2)

谷哥的小弟學(xué)后臺(tái)(11)——Servlet(3)

谷哥的小弟學(xué)后臺(tái)(12)——Servlet(4)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 濉溪县| 象山县| 安国市| 彩票| 江西省| 屯昌县| 白玉县| 颍上县| 姚安县| 开封市| 霍林郭勒市| 抚宁县| 汤原县| 吴旗县| 平顺县| 丹阳市| 从江县| 灵武市| 攀枝花市| 五家渠市| 渝中区| 抚顺县| 商城县| 黎城县| 吉木萨尔县| 兴仁县| 鄂托克前旗| 栾城县| 三穗县| 兰州市| 肇州县| 钟祥市| 陇南市| 丹凤县| 仁怀市| 喀喇沁旗| 古丈县| 迭部县| 新竹县| 巴楚县| 施秉县|