本文共 5317 字,大约阅读时间需要 17 分钟。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>Insert title here
文件名 | 下载 |
---|---|
${item.name} | 下载 |
package cn.et.upload;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.fileupload.servlet.ServletFileUpload;/** * 文件上传 */public class UpaloadServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String contextPath = request.getContextPath();//获取上下文路径 PrintWriter out = response.getWriter(); //接收文件 boolean isMultipart = ServletFileUpload.isMultipartContent(request); //判断是否是文件上传请求 if(isMultipart){ //用于创建解析文件上传的工厂类 DiskFileItemFactory factory = new DiskFileItemFactory(); //默认上传文件 暂时存放在临时目录 System.getProperty("java.io.tmpdir"); //也有可能是tomcat/temp目录 //用于从请求中解析文件 ServletFileUpload upload = new ServletFileUpload(factory); //设置字符集 解决文件名中文乱码问题 upload.setHeaderEncoding("UTF-8"); try { //解析出文件的个数 Listlist = upload.parseRequest(request); for(FileItem li:list){ //表示输入的文本框 if(li.isFormField()){ System.out.println(li.getFieldName()+"=>"+li.getString()); }else{//表示输入的是文件 //获取文件名 String fileName=li.getName(); InputStream is = li.getInputStream(); String destPath = "F:/file/"+fileName; FileOutputStream fis = new FileOutputStream(destPath); byte[] bt = new byte[1024]; int len = 0; while((len=is.read(bt))!=-1){ fis.write(bt,0,len); } fis.close(); is.close(); } } } catch (FileUploadException e) { e.printStackTrace(); }finally{ response.sendRedirect(contextPath+"/sud"); } } out.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
package cn.et.download;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.URLEncoder;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * 文件下载 */public class DewnloadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); //文件下载的输出流 OutputStream os = response.getOutputStream(); //获取传递过的的文件名 String fileName = request.getParameter("fileName"); //告诉浏览器下载的文件名 response.setHeader("Location", URLEncoder.encode(fileName,"UTF-8")); response.setHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode(fileName,"UTF-8")); //将文件流 写入OutputSteam FileInputStream fis = new FileInputStream("F:/file"+"/"+fileName); byte[] bys = new byte[1024]; int len = 0; while((len=fis.read(bys))!=-1){ os.write(bys, 0, len); os.flush(); } os.close(); fis.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}将文件夹里的文件获取出来,将显示在浏览器上
package cn.et.show;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ShowUploadDownload extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); File file = new File("F:/file"); File[] files = file.listFiles(); //设置样式 List示例: