首页 > 技术文章 > 文件上传和下载

lingdu9527 2019-06-14 11:14 原文

上传和下载需要一些jar包

commons-fileupload-1.3.1.jar

commons-io-2.4.jar

上传界面fileUp.jsp

1 <h2>文件的上传</h2>
2     <form action="fileUp_do.jsp" method="post" enctype="multipart/form-data">
3         <input type="file" name="file"><input type="submit" value="提交">
4     </form>

上传处理fileUp_do.jsp

 1 <%
 2     //ServletFileUpload类
 3     ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
 4     //解析request
 5     List<FileItem> fileItemList = upload.parseRequest(request);
 6     for (FileItem f : fileItemList) {
 7         String ext = FilenameUtils.getExtension(f.getName());//获取文件后缀名
 8         FileOutputStream fos = new FileOutputStream(
 9                 new File("E:\\练习\\" + System.currentTimeMillis() + "." + ext));
10         IOUtils.copy(f.getInputStream(), fos);
11         fos.close();
12     }
13 %>

下载界面fileDow.jsp

1 <h2>文件的下载</h2>
2     <%
3         File[] files = new File("E:\\练习\\").listFiles();
4         for (File f : files) {
5     %>
6     <a href="fileDow_do.jsp?filename=<%=f.getName()%>"><%=f.getName()%></a><br/>
7     <%
8         }
9     %>

下载处理fileDow_do.jsp

1 <%@page import="org.apache.commons.io.IOUtils"%><%@page import="java.io.File"%><%@page import="java.io.FileInputStream"%><%@ page language="java" contentType="text/html; charset=UTF-8"
2     pageEncoding="UTF-8"%><%
3     String filename = request.getParameter("filename");
4     FileInputStream fis = new FileInputStream(new File("E:\\练习\\" + filename));
5     response.addHeader("Content-Disposition", "attachment;filename=" + filename);
6     IOUtils.copy(fis, response.getOutputStream());
7     fis.close();
8 %>

注意:需要删除<%%>和<%%>之间的空格符

 

推荐阅读