public class FileUploadServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1.设定请求参数的解析编码
request.setCharacterEncoding("utf-8");
//2.获得解析二进制流的解析器
DiskFileItemFactory dff=new DiskFileItemFactory();
ServletFileUpload sf=new ServletFileUpload(dff);
//3.表单中的数据封装在request中,将request中的数据读入到二进制流解析器中
try {
//FileItem代表表单当中的input对象, input对象分为文件域和非文件域
List<FileItem> items=sf.parseRequest(request);
for (FileItem item : items) {
if(item.isFormField()){//如果为true,表示该item对应得input为普通域
String name=item.getFieldName();
String value=item.getString();
System.out.println("name="+name+"..value="+value);
}else{
//表示input的type为 文件域
String fileName=item.getName();
//对名称做处理
fileName=fileName.substring(fileName.lastIndexOf("\\")+1);
System.out.println("fileName=="+fileName);
//获得服务器中保存文件的目录的绝对路径
String path=this.getServletContext().getRealPath("upload");
//获得文件最终保存的路径
File f=new File(path+"\\"+fileName);
item.write(f);//把item中数据写入到新建文件中
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
java中使用Servlet实现文件上传
最新推荐文章于 2024-08-01 15:05:06 发布