zoukankan      html  css  js  c++  java
  • 文件写入硬盘

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

    示例代码:

     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     }
  • 相关阅读:
    js冒泡排序
    总结常见疑问
    第八课 课程重点(js语句:条件、循环)
    第九课 课程重点(js语句:获取时间、数字取值、定时器)
    利用NABCD模型进行竞争性需求分析
    运行结果及总结~张萍萍
    测试与调试 滕娟
    面向对象分析设计
    设计类图 201303014029 于海飞
    SRS文档 王倩倩 201303014004
  • 原文地址:https://www.cnblogs.com/ShawnYang/p/7645956.html
Copyright © 2011-2022 走看看