<%--
Created by IntelliJ IDEA.
User: lh
Date: 2019/5/20
Time: 14:22
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>下载</title>
</head>
<body>
<a href="${pageContext.request.contextPath}/Servlet1A?fileName=a.jpg">下载图片</a>
<%--<a href="${pageContext.request.contextPath}/Servlet1B?fileName=熊.jpg">下载图片</a>--%>
</body>
</html>
package servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class Servlet1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String fileName = req.getParameter("fileName");//获取文件名
//获取路径
String realPath = this.getServletContext().getRealPath("/WEB-INF/uploada/"+fileName);//获取文件
File file = new File(realPath);
//判断文件是否存在
if(!file.exists()){
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().print("你要文件不存在");
}
resp.setHeader("content-disposition","attachment;filename="+fileName);//设置响应头
FileInputStream fis = new FileInputStream(file);
ServletOutputStream outputStream = resp.getOutputStream();
byte[] bytes = new byte[1024 * 5];
int len;
while ((len=fis.read(bytes))!=-1){
outputStream.write(bytes,0,len);
}
outputStream.close();
fis.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
下载文件名为非中文的文件
最新推荐文章于 2022-02-14 15:12:29 发布