文件写入硬盘

获取表单数据之后,判断如果字段不是普通字段(即文件字段),则对文件进行保存。

示例代码:

 1     public void doGet(HttpServletRequest request, HttpServletResponse response)
 2             throws ServletException, IOException {
 3         //设置返回的字符编码
 4         response.setCharacterEncoding("UTF-8");
 5         //设置返回的内容类型
 6         response.setContentType("text/html;charset=UTF-8");
 7         //创建接收文件的工厂类
 8         DiskFileItemFactory factory = new DiskFileItemFactory();
 9         //创建文件解析对象
10         ServletFileUpload sfu = new ServletFileUpload(factory);
11         try {
12             //解析request获得表单中的每一文件项(包含普通文本域)
13             List<FileItem> fiList = sfu.parseRequest(request);
14             //遍历每一个文本项
15             for(FileItem fi : fiList){
16                 //获得原始文件名
17                 String originalFilename = fi.getName();
18                 //获得字段名
19                 String field = fi.getFieldName();
20                 //是否是普通字段
21                 //如果true,代表普通字段(a simple form field)
22                 //如果false,代表文件字段
23                 boolean isFormField = fi.isFormField();
24                 //判断是否是文件字段
25                 if(!isFormField){
26                     if(field != null && !"".equals(field) ){
27                         //设置要上传的目录
28                         String uploadPath = request.getSession().getServletContext().getRealPath("/upload");
29                         //创建文件对象
30                         File file = new File(uploadPath,originalFilename);//参数:文件目录,文件名
31                         //把文件写入硬盘
32                         fi.write(file);
33                         //回写结果
34                         response.getWriter().print("文件上传成功。");
35                     }
36                 }
37             }
38         } catch (FileUploadException e) {
39             e.printStackTrace();
40         } catch (Exception e) {
41             e.printStackTrace();
42         }
43     }

 

posted @ 2017-10-10 15:38  流年如水烟雨随风  阅读(852)  评论(0编辑  收藏  举报