准备工作
1、确保服务器端已经安装了Java环境,并且配置好了Tomcat服务器。
(图片来源网络,侵删)2、在服务器端创建一个文件夹,用于存放需要下载的文件。
3、将需要下载的文件放入刚刚创建的文件夹中。
4、编写一个简单的JSP页面,用于实现文件下载功能。
编写JSP页面
1、打开一个文本编辑器,如Notepad++或者Sublime Text。
2、新建一个JSP文件,download.jsp。
3、编写JSP页面的代码,如下所示:
<%@ page language="java" contentType="text/html; charset=UTF8" pageEncoding="UTF8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF8"> <title>文件下载</title> </head> <body> <h1>文件下载</h1> <form action="downloadServlet" method="post" enctype="multipart/formdata"> <label for="fileName">选择文件:</label> <input type="text" id="fileName" name="fileName" readonly="readonly"> <br><br> <input type="submit" value="下载"> </form> </body> </html>
编写Servlet处理文件下载请求
1、在服务器端的WebContent目录下,新建一个Java类,DownloadServlet.java。
2、编写Servlet类的代码,如下所示:
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.fileupload.*; import org.apache.commons.fileupload.disk.*; import org.apache.commons.fileupload.servlet.*; import org.apache.commons.io.*; public class DownloadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF8"); response.setContentType("text/html;charset=UTF8"); String filePath = "D:/files"; // 服务器端文件存放路径 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> items = upload.parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { // 判断是否为文件上传项 String fileName = item.getName(); // 获取文件名 File file = new File(filePath + "/" + fileName); // 创建文件对象 item.write(file); // 保存文件到服务器端指定路径 response.setHeader("ContentDisposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF8")); // 设置响应头,实现文件下载功能 response.getOutputStream().write(FileUtils.readFileToByteArray(file)); // 读取文件内容并写入响应输出流,实现文件下载功能 break; // 只处理第一个文件上传项,避免重复下载多个文件 } } } catch (Exception e) { e.printStackTrace(); } finally { if (upload != null) { // 关闭文件上传解析器,释放资源 upload.cleanFiles(); } } } }
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。