zoukankan      html  css  js  c++  java
  • 文件上传

     1 package cn.servlet;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.util.List;
     6 import java.util.UUID;
     7 
     8 import javax.servlet.ServletException;
     9 import javax.servlet.annotation.WebServlet;
    10 import javax.servlet.http.HttpServlet;
    11 import javax.servlet.http.HttpServletRequest;
    12 import javax.servlet.http.HttpServletResponse;
    13 
    14 import org.apache.commons.fileupload.FileItem;
    15 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    16 import org.apache.commons.fileupload.servlet.ServletFileUpload;
    17 
    18 @WebServlet(urlPatterns = "/up2")
    19 public class Up2Servlet extends HttpServlet {
    20     @Override
    21     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    22         req.setCharacterEncoding("UTF-8");
    23 
    24         DiskFileItemFactory disk = new DiskFileItemFactory();
    25         ServletFileUpload up = new ServletFileUpload(disk);
    26         // 如果你不知道用户上传多少个文件,则应该遍历
    27         try {
    28             List<FileItem> list = up.parseRequest(req);
    29             FileItem item1 = list.get(0);
    30             String name = item1.getString("UTF-8");// 对于非文件,用于这种方式来获取用户提交的
    31             FileItem item2 = list.get(1);
    32             String age = item2.getString("UTF-8");
    33             FileItem item3 = list.get(2);
    34             String fileName = item3.getName();
    35             fileName = fileName.substring(fileName.lastIndexOf("\") + 1);
    36             // 对文件重名称
    37             String extName = fileName.substring(fileName.lastIndexOf(".") + 1);// abc.jpg
    38                                                                                 // -=>
    39                                                                                 // jpg
    40             String uuid = UUID.randomUUID().toString().replace("-", "");
    41             String newFileName = uuid + "." + extName;
    42             // 获取文件上传的真实的目录
    43             String realPath = getServletContext().getRealPath("/files");
    44             // 实现文件上传
    45             item3.write(new File(realPath, newFileName));
    46             // 将转发到show.jsp显示
    47             req.setAttribute("name", name);
    48             req.setAttribute("age", age);
    49             req.setAttribute("oldFileName", fileName);
    50             req.setAttribute("newFileName", newFileName);
    51             req.getRequestDispatcher("/jsps/show.jsp").forward(req, resp);
    52         } catch (Exception e) {
    53             e.printStackTrace();
    54         }
    55 
    56     }
    57 }
  • 相关阅读:
    360删除、修改注册表问题
    朗姆达表达式类似IN查询条件
    SQL 分组排序、CASE...WHEN...、是否为空 查询
    Excel 复制Sql查询结果错位
    redis实现购物车秒杀原理
    sphinx的使用
    linux安装
    linux和windows的区别
    Yii2.0实现语言包切换功能
    Linux的7个级别
  • 原文地址:https://www.cnblogs.com/fujilong/p/5608430.html
Copyright © 2011-2022 走看看