核心提示:文件上传,有两种方法:第一步:第一种方法:导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项目的路径保存到数据库


