a86ab2276fcd6780cf7adccd3e9757e19e820a3a.svn-base 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package cn.com.goldenwater.dcproj.util;
  2. import org.springframework.web.multipart.MultipartFile;
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import java.util.Objects;
  8. public class MultipartFileToFileUtil {
  9. /**
  10. * MultipartFile 转 File
  11. *
  12. * @param file
  13. * @throws Exception
  14. */
  15. public static File multipartFileToFile(MultipartFile file) throws Exception {
  16. File toFile = null;
  17. if ("".equals(file) || file.getSize() <= 0) {
  18. file = null;
  19. } else {
  20. InputStream ins = null;
  21. ins = file.getInputStream();
  22. toFile = new File(Objects.requireNonNull(file.getOriginalFilename()));
  23. inputStreamToFile(ins, toFile);
  24. ins.close();
  25. }
  26. return toFile;
  27. }
  28. //获取流文件
  29. private static void inputStreamToFile(InputStream ins, File file) {
  30. try {
  31. OutputStream os = new FileOutputStream(file);
  32. int bytesRead = 0;
  33. byte[] buffer = new byte[8192];
  34. while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
  35. os.write(buffer, 0, bytesRead);
  36. }
  37. os.close();
  38. ins.close();
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. /**
  44. * 删除本地临时文件
  45. *
  46. * @param file
  47. */
  48. public static void delteTempFile(File file) {
  49. if (file != null) {
  50. File del = new File(file.toURI());
  51. del.delete();
  52. }
  53. }
  54. }