文件上传依赖
<!--文件上传依赖的版本号--> <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测试