ssm+maven 实现文件上传

文件上传依赖

<!--文件上传依赖的版本号-->
        <commons-fileupload.version>1.3.1</commons-fileupload.version>
        <commons-io.version>2.4</commons-io.version>



        <!--上传依赖-->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons-io.version}</version>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>${commons-fileupload.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-io</groupId>
                    <artifactId>commons-io</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

controller(rootPath上传位置需要自己指定)

import com.neusiri.epcstest.util.JsonRESTResult;
import com.neusiri.epcstest.util.JsonRESTResultMsg;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

@RestController
@RequestMapping("/upload")
public class FileUploadController {
    @RequestMapping("/file")
    public JsonRESTResult pictureUpload(MultipartFile file, HttpServletRequest request){
        JsonRESTResult jsonRESTResult = new JsonRESTResult();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");
        String res = sdf.format(new Date());
        try{
            // 上传位置
            String rootPath = "/upload";
            // 原始名称
            String originalFileName = file.getOriginalFilename();
            // 新文件名
            String newFileName = res + originalFileName.substring(originalFileName.lastIndexOf("."));
            System.out.println("新文件名:"+newFileName);
            // 创建年月文件夹
            Calendar date = Calendar.getInstance();
            File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1));

            // 新文件
            File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName);
            if( !newFile.getParentFile().exists()) {
                // 如果目标文件所在的目录不存在,则创建父目录
                newFile.getParentFile().mkdirs();
            }
            System.out.println(newFile);
            // 将内存中的数据写入磁盘
            file.transferTo(newFile);
            // 完整的url
            String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName;
            jsonRESTResult.setCode(JsonRESTResultMsg.CODE_800.getCode());
            jsonRESTResult.setMsg("文件上传成功");
            jsonRESTResult.setData(newFile);
        }catch(Exception e){
            jsonRESTResult.setCode(JsonRESTResultMsg.CODE_500.getCode());
            jsonRESTResult.setMsg("文件上传失败");
            jsonRESTResult.setData(null);
        }

        return jsonRESTResult;
    }



}

postman测试