檔案下載
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
@WebServlet("/FileServlet")
public class FileServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1、獲取下載檔案的路徑
String realPath="H:\\Maven\\ServletTest\\Download\\src\\main\\resources\\天空.png";
System.out.println(realPath);
// 2、下載的檔名是啥
String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
// 3、設定瀏覽器能夠支援下載的東西,中文檔名需要指定編碼方式,否則可能會亂碼
response.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(fileName,"utf-8"));//分號改成冒號會展示圖片而不會下載
// 4、獲取下載檔案的輸入流
FileInputStream in=new FileInputStream(realPath);
// 5、建立緩衝區
int len=0;
byte[] buffer=new byte[1024];
// 6、獲取outputStream物件
ServletOutputStream out= response.getOutputStream();
// 7、將FileOutputStream流寫入buffer,使用outputStream將緩衝區資料輸出到客戶端
while((len=in.read(buffer))>0)
{
out.write(buffer,0,len);
}
in.close();
out.close();
}
}
相關文章
- 00、下載檔案
- Ajax 下載檔案
- js 檔案下載JS
- HttpClient 下載檔案HTTPclient
- JAVA檔案下載Java
- Response下載檔案
- FastApi下載檔案ASTAPI
- 檔案程式設計、檔案下載程式設計
- SpringMVC檔案上傳下載(單檔案、多檔案)SpringMVC
- python之檔案下載Python
- 檔案上傳下載
- Flutter 下載檔案操作Flutter
- python 下載檔案demoPython
- 檔案下載(URL,文件流)
- CentOS 7映象檔案下載CentOS
- 檔案下載那點事
- 如何下載 Ubuntu 映象檔案?Ubuntu
- JAVA檔案上傳下載Java
- IDM下載度盤檔案
- Flutter實現檔案下載Flutter
- 使用 header 頭下載檔案Header
- 6.1檔案下載、讀取
- AJAX實現檔案下載----
- goroutine&waitgroup下載檔案GoAI
- 前端如何下載檔案流前端
- springboot 檔案上傳下載Spring Boot
- 檔案上傳與下載
- Netty接收HTTP檔案上傳及檔案下載NettyHTTP
- spring cloud feign 檔案上傳和檔案下載SpringCloud
- 精講RestTemplate第6篇-檔案上傳下載與大檔案流式下載REST
- vue/js實現檔案流下載,檔案下載進度監聽VueJS
- a標籤與Blob下載檔案的區別和獲取檔案下載進度
- 前端檔案下載通識篇前端
- 多執行緒下載檔案執行緒
- 前端通過 post 下載檔案前端
- 15種下載檔案的方法
- vue axios+springboot 檔案下載VueiOSSpring Boot
- Golang 使用http Client下載檔案GolangHTTPclient