核心提示:文件上传,有两种方法:第一步:第一种方法:导jar包,下jar包第二种方法:导jar包,下jar包1,下jar包2,要下两个第二步:提交方式为post,且必须加这行属性enctype=multipar...
文件上传,有两种方法:
第一步:
第一种方法:导jar包,下jar包
第二种方法:导jar包,下jar包1,下jar包2,要下两个
第二步:提交方式为post,且必须加这行属性
enctype="multipart/form-data" upload.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
用户名:
上传文件:
第三步:获取文件
uploadServlet.java package servlet; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; 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; import org.apache.commons.io.FileUtils; import com.jspsmart.upload.File; import com.jspsmart.upload.Files; import com.jspsmart.upload.Request; import com.jspsmart.upload.SmartUpload; import com.jspsmart.upload.SmartUploadException; public class uploadServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //文件上传 方法一 //----------------------------------------------------------------// /* //实例化SmartUpload SmartUpload su=new SmartUpload(); //初始化SmartUpload su.initialize(this.getServletConfig(),request,response); try { //开始上传 su.upload(); //获取新的request Request req=su.getRequest(); //获取request的参数 String uname=req.getParameter("uname"); //获取文件集合 Files fs=su.getFiles(); //获取文件 File f=fs.getFile(0); //获取web项目路径 String webpath=request.getServletContext().getRealPath("/"); //将获取的文件保存到web路径 String savepath=webpath+"image/"+f.getFileName(); f.saveAs(savepath); } catch (SmartUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } */ //文件上传 方法二 //----------------------------------------------------------------// //获取web项目的路径 String webpath=request.getServletContext().getRealPath("/"); //实例化DiskFileItemFactory DiskFileItemFactory dfif=new DiskFileItemFactory(); //设置文件多大时需要临时文件 如:1M dfif.setSizeThreshold(1024*1024); //设置临时文件的保存路径 java.io.File f=new java.io.File(webpath+"/temp"); dfif.setRepository(f); //实例化ServletFileUpload ServletFileUpload sfu=new ServletFileUpload(dfif); //设置上传文件的最大值 如:10M sfu.setSizeMax(1024*1024*10); try { //解析请求 List fis=sfu.parseRequest(request); //获取参数和文件 for (FileItem fi : fis) { //非文件类型 if(fi.isFormField()){ //参数名 fi.getFieldName(); //参数值 fi.getString(); }else{//文件类型 //文件名 fi.getName(); //文件类型 fi.getContentType(); //文件大小 fi.getSize(); //保存文件到web项目的路径 java.io.File file=new java.io.File(webpath+"/files/"+fi.getName()); //得到文件的读流 InputStream is=fi.getInputStream(); //复制 FileUtils.copyInputStreamToFile(is,file); is.close(); } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } response.sendRedirect("download.jsp"); } }
第四步:将文件在web项目的路径保存到数据库