MultipartFile multiFile = new MultipartFile(); //前端传过来的文件对象 String fileName = multiFile.getOriginalFilename(); String prefix = fileName.substring(fileName.lastIndexOf(".")); File file = null; try { file = File.createTempFile(fileName, prefix); multiFile.transferTo(file); } catch (Exception e) { e.printStackTrace(); } finally { // 操做完上面的文件 须要删除在根目录下生成的临时文件 File f = new File(file.toURI()); f.delete(); }
以上方法若是涉及跨域颇有可能不能使用,建议使用如下方法前端
//调用 File file = null; try { //将MultipartFile转为File file = multipartFileToFile(multiFile); } catch (Exception e) { e.printStackTrace(); result.setMsg("上传失败,请检查文件格式再次尝试"); result.setValid(false); return result; } finally { deleteTempFile(file); } //工具类 import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; /** * @Auther: QiShuai * @Date: 2020/4/8 10:58 * @Description: */ public class MultipartFileToFile { /** * MultipartFile 转 File * * @param file * @throws Exception */ public static File multipartFileToFile(MultipartFile file) throws Exception { File toFile = null; if (file.equals("") || file.getSize() <= 0) { file = null; } else { InputStream ins = null; ins = file.getInputStream(); toFile = new File(file.getOriginalFilename()); inputStreamToFile(ins, toFile); ins.close(); } return toFile; } //获取流文件 private static void inputStreamToFile(InputStream ins, File file) { try { OutputStream os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); ins.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 删除本地临时文件 * @param file */ public static void deleteTempFile(File file) { if (file != null) { File del = new File(file.toURI()); del.delete(); } } }