zoukankan      html  css  js  c++  java
  • commons-fileload图片文件上传工具 , servlet文件图片上传案列

    本案列是java  maven工程小项目,提供个大家学习!

    1.在pom.xml文件中导入依赖:

    <!--文件上传依赖-->
    <dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
    </dependency>

    <!--String社区 jackson-->
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.0</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.11.0</version>
    </dependency>
    <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.11.0</version>
    </dependency>

    1. 编写图片上传工具,ApachFileUploadUtil :import org.apache.commons.fileupload.FileItem;

    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    import javax.servlet.http.HttpServletRequest;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.UUID;

    /**
    * 文件上传,批量上传文件工具
    * @author: boat
    */
    public class ApachFileUploadUtil {
    private static DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();

    /**
    * 上传功能
    * @param request
    * @param filePath
    * @return 路径集合
    */
    public static List<String> fileUpload(HttpServletRequest request,String filePath){
    ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
    List<String> list = new ArrayList<>();
    try {
    List<FileItem> fileItems = servletFileUpload.parseRequest(request);
    for (FileItem item : fileItems){
    String fieldName = item.getFieldName();
    if(!item.isFormField()){ //判断是否是文件项
    //获取原文件名
    String name = item.getName();

    InputStream in = item.getInputStream();

    String path = getPath(filePath, name);
    OutputStream out = new FileOutputStream(path);
    byte[] b = new byte[1024];
    int len = 0;
    while((len = in.read(b)) != -1){
    out.write(b,0,len);
    }
    out.close();
    in.close();

    //添加文件路径
    list.add(path);
    }
    item.delete();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    return list;
    }

    /**
    * 随机字符串
    * @param fileName
    * @return String
    */
    public static String radomFileName(String fileName){
    int index = fileName.lastIndexOf(".");
    String suffix = fileName.substring(index);
    String newfileName = UUID.randomUUID().toString().replace("-", "");
    return (newfileName + suffix);
    }

    /**
    * 随机文件路径
    * @return String
    */
    public static String radomFilePath(){
    String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
    return format.replace("-","");
    }

    /**
    * 返回指定的文件路径
    * @param path
    * @param fileName
    * @return String
    */
    public static String getPath(String path,String fileName){

    String newPath = path + "\"+ radomFilePath();
    File photoFileDir = new File(newPath);

    if(!photoFileDir.exists()){ // 如果路径不存在,就创建路径
    photoFileDir.mkdirs();
    }

    return (newPath + "\" + radomFileName(fileName));
    }

    }


    2.在servlet类中service调用图片上传工具类:

    import com.boat.utils.ApachFileUploadUtil;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.List;

    @WebServlet("/file")
    public class FileUploadServlet extends HttpServlet {

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setContentType("text/html; charset=utf-8");
    ServletContext servletContext = req.getServletContext();
    String realPath = servletContext.getRealPath("/img");

    List<String> strings = ApachFileUploadUtil.fileUpload(req, realPath);
    String json = new ObjectMapper().writeValueAsString(strings);

    resp.getWriter().println("{status:1,data:"+json+",message:'上传成功'}");
    }

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    this.doPost(req,resp);
    }

    }

    点击下载:https://pan.baidu.com/s/1rzZoJlbMmUskOW6PsaGCzg 密码:lc2e

    加QQ: 425759592 欢迎交流。

  • 相关阅读:
    分页
    IBM TAM手册
    单点登录集成商。
    Using Web Services Instead of DCOM
    symantec endpoint protection SEP禁用所有usb设备,只允许部分例外
    桌面管理landesk太古案例
    AdventureWorks数据库的安装和NorthWind例子数据库下载
    IBM Tivoli Access Manager for ebusiness 6.1.1 Administration and Deployment
    word编辑长文档方法
    笔记本电源消耗测量
  • 原文地址:https://www.cnblogs.com/M87-A/p/12861110.html
Copyright © 2011-2022 走看看