SpringMVC的多图片(文件)拖拽批量上传到项目中

最近需要图片批量拖拽上传,记录一下下。我的项目使用的是SSM框架。

需要的jar包

 
        
        
            commons-io
            commons-io
            2.6
        
        
        
            commons-fileupload
            commons-fileupload
            1.4
        

SpringMVC.xml中的配置

	
	
		
		
		
		
        
	

Controller层的代码 :Msg实体类是我返回结果自己建的,用户ajax请求返回json数据

 @RequestMapping(value = "/uploadPicture")
    public @ResponseBody
    Msg uploadPicture(@RequestParam(value = "file") MultipartFile[] files, HttpServletRequest request)
            throws IOException {
        if (files != null && files.length != 0) {
            for (int i = 0; i < files.length; i++) {
                MultipartFile file = files[i];
                UploadUtils.upload(request, file);
            }
        }
        return Msg.success("上传成功");
    }

UploadUtil实体类:

package cn.wannengde.toolkit.tool;

import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.UUID;

/*
@author 
@date  2019/5/6 - 11:30
*/
public class UploadUtils {

    public static String upload(HttpServletRequest request, MultipartFile file) throws IOException {
        String imgPath = null;  //  存储装配后的地址
        if(file != null && !file.isEmpty()){
            //使用UUID给图片重命名,并去掉生成的四个"-"
            String name = UUID.randomUUID().toString().replace("-","");
            //获得文件的扩展名
            String ext = FilenameUtils.getExtension(file.getOriginalFilename());
            //根据项目真实路径设置图片的上传路径
            String url = request.getSession().getServletContext().getRealPath("/upload");
            //检验文件夹是否存在,如果不存在会自动建立
            isFolderExists(url);
            // 以绝对路径保存重名命后的图片
            file.transferTo(new File(url + "/" + name + "." + ext));
            // 装配图片地址
            imgPath = "upload/" + name + "." + ext;
        }
        return imgPath;
    }

    /**
     * 验证文件夹是否存在,如果不存在自动建立
     *
     * @param strFolder
     * @return
     */
    public static boolean isFolderExists(String strFolder) {
        File file = new File(strFolder);

        if (!file.exists()) {
            if (file.mkdir()) {
                return true;
            } else {
                return false;
            }

        }
        System.out.println("-----------------文件上传路径:" + strFolder);
        return true;
    }
}

前端页面:使用的是Jquery插件实现的,插件其中可能有很多坑,我踩中了两个,还有一个就是插件中的CSS中利用了

imagesUploadContent这个class来设置,如果要改需要去对应CSS里面去改改。

<%@ page language="java" contentType="text/html; charset=UTF-8"
		 pageEncoding="UTF-8"%>


<%
	pageContext.setAttribute("APP_PATH", request.getContextPath());
%>

	
	上传图片
	
	


插件位置

链接: https://pan.baidu.com/s/1hgpAmcKIcG0IFiLiS3NUrg 提取码: mfuv 

你可能感兴趣的:(工具箱)