js通过formData上传文件,Spring后台处理

Posted wsfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js通过formData上传文件,Spring后台处理相关的知识,希望对你有一定的参考价值。

1、前端

var formData = new FormData();
formData.append(file, $("#file").val());
$.ajax({
    url:地址,
    type:post,
    data:formData,
    async:false,
    processData:false,  
    contentType:false, 
    success:function (response) {
        alert(response.msg);
    }
})

 

2、controller

// 创建一个通用的多部分解析器
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
MultipartHttpServletRequest multiRequest = commonsMultipartResolver.resolveMultipart((HttpServletRequest) request);
List<String> strList = new ArrayList<String>();
String fileName = null;
List<MultipartFile> files = request.getMultiFileMap().get("file");
if(files != null) {
    for (MultipartFile file : files){
        String myFileName = file.getOriginalFilename();
        if (myFileName.trim() != ""){
            // 获得图片的原始名称
            String originalFilename = file.getOriginalFilename();
            // 获得图片后缀名称
            String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
            // 获得上传路径的绝对路径地址
            String realPath = request.getSession().getServletContext().getRealPath(路径);
            File realPathDirectory = new File(realPath);
            if (realPathDirectory == null || !realPathDirectory.exists()){
                realPathDirectory.mkdirs();
            }
            // 采用UUID的方式重命名上传后的文件名
            fileName = java.util.UUID.randomUUID().toString() + suffix;
            File uploadFile = new File(realPathDirectory + "/" + fileName);
            file.transferTo(uploadFile);
            strList.add(request.getContextPath() + "/" + DirectoryName + fileName);
        }
    }
}

 

以上是关于js通过formData上传文件,Spring后台处理的主要内容,如果未能解决你的问题,请参考以下文章

formData上传文件

node.js使用multiparty上传文件

webuploader中怎么在后台获取formData

element-ui upload上传文件并携带参数 使用formData对象

spring 注解上传文件 @RequestParam

c#+js 使用formdata上传文件