From 92b286e238439c61b230a07f42b92c2328588d49 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期三, 22 十一月 2023 11:19:16 +0800 Subject: [PATCH] #全局短信验证:目前 规划单、核价、报价已添加 --- src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 218 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java b/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java index cc6d062..20892a0 100644 --- a/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java +++ b/src/main/java/com/zy/crm/common/utils/FileSaveExampleUtil.java @@ -1,10 +1,23 @@ package com.zy.crm.common.utils; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; +import org.springframework.core.io.Resource; + +import java.net.URLEncoder; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.core.io.UrlResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Path; +import lombok.Data; public class FileSaveExampleUtil { @@ -48,17 +61,208 @@ // } // } - public static void saveFile(MultipartFile file, String savePath) throws IOException { - // 鍒涘缓淇濆瓨鏂囦欢鐨勭洰褰曪紙濡傛灉涓嶅瓨鍦級 - File directory = new File(savePath); - if (!directory.exists()) { - directory.mkdirs(); +// public static void saveFile(MultipartFile file, String savePath) throws IOException { +// // 鍒涘缓淇濆瓨鏂囦欢鐨勭洰褰曪紙濡傛灉涓嶅瓨鍦級 +// File directory = new File(savePath); +// if (!directory.exists()) { +// directory.mkdirs(); +// } +// +// // 淇濆瓨鏂囦欢 +// String fileName = file.getOriginalFilename(); +// String filePath = savePath + fileName; +// File dest = new File(filePath); +// file.transferTo(dest); +// } + + public static void deleteFilesInDirectory(String directoryPath) { + File directory = new File(directoryPath); + if (directory.exists() && directory.isDirectory()) { + File[] files = directory.listFiles(); + if (files != null) { + for (File file : files) { + if (file.isFile()) { + file.delete(); + System.out.println("Deleted file: " + file.getAbsolutePath()); + } + } + } + } + } + +// public static FileDTO downloadFile(String directoryPath,HttpServletResponse response) { +// File file = new File(directoryPath); +// if (file.exists()) { +// try { +// response.setContentType("application/vnd.ms-excel"); +// response.setHeader("Content-Disposition", "attachment; filename=" + file.getName()); +// +// FileInputStream fileInputStream = new FileInputStream(file); +// OutputStream outputStream = response.getOutputStream(); +// byte[] buffer = new byte[1024]; +// int length; +// while ((length = fileInputStream.read(buffer)) != -1) { +// outputStream.write(buffer, 0, length); +// } +// outputStream.flush(); +// outputStream.close(); +// fileInputStream.close(); +// +// return new FileDTO(true, file.getName(), null); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// +// return new FileDTO(false, null, "鏂囦欢涓嶅瓨鍦�"); +// +// +// } + +// public static void downloadFile(String directoryPath,HttpServletResponse response) { +// try { +//// File file = new File(directoryPath); +//// InputStream inputStream = new FileInputStream(file); +//// //杈撳嚭鏂囦欢 +//// InputStream fis = new BufferedInputStream(inputStream); +//// byte[] buffer = new byte[fis.available()]; +//// fis.read(buffer); +//// fis.close(); +//// response.reset(); +//// +//// //鑾峰彇鏂囦欢鐨勫悕瀛楀啀娴忚鍣ㄤ笅杞介〉闈� +//// String name = file.getName(); +//// response.addHeader("Content-Disposition", "attachment;filename=" + new String(name.getBytes(), "iso-8859-1")); +//// response.addHeader("Content-Length", "" + file.length()); +//// OutputStream out = new BufferedOutputStream(response.getOutputStream()); +//// response.setContentType("application/octet-stream"); +//// out.write(buffer); +//// out.flush(); +//// out.close(); +// File file = new File(directoryPath); +// if (!file.exists()) { +// // 鏂囦欢涓嶅瓨鍦紝鍙互鏍规嵁瀹為檯鎯呭喌杩涜澶勭悊 +// return; +// } +// +// response.reset(); +// response.setContentType("application/octet-stream"); +// response.setContentLength((int) file.length()); +// response.setHeader("Content-Disposition", "attachment;filename=" + file.getName()); +// +// BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); +// BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream()); +// byte[] buffer = new byte[4096]; +// int bytesRead; +// while ((bytesRead = bis.read(buffer)) != -1) { +// bos.write(buffer, 0, bytesRead); +// } +// bos.flush(); +// +// bis.close(); +// bos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } + + public static ResponseEntity<Resource> downloadFile(String filename, HttpServletResponse response) { + try { + File file = new File(filename); + //鑾峰彇鏂囦欢鐨勫悕瀛楀啀娴忚鍣ㄤ笅杞介〉闈� + String name = file.getName(); + + // 鏋勫缓鏂囦欢璺緞 + Path filePath = Paths.get(filename); + Resource resource = new UrlResource(filePath.toUri()); + + if (resource.exists()) { + // 璁剧疆鍝嶅簲澶� + HttpHeaders headers = new HttpHeaders(); +// headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); + response.setContentType("application/octet-stream"); + headers.setContentDispositionFormData("attachment", filename); + response.addHeader("Content-Disposition", "attachment;filename=" + new String(name.getBytes(), "UTF-8")); +// headers.setContentDispositionFormData("attachment", URLEncoder.encode(name, "UTF-8")); +// response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(name, "UTF-8")); + + // 杩斿洖鏂囦欢鍝嶅簲 + return ResponseEntity.ok() + .headers(headers) + .body(resource); + +// // 璁剧疆鍝嶅簲澶� +// HttpHeaders headers = new HttpHeaders(); +// headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); +// headers.setContentDispositionFormData("attachment", URLEncoder.encode(name, "UTF-8")); +// response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(name, "UTF-8")); +// +// // 杩斿洖鏂囦欢鍝嶅簲 +// return ResponseEntity.ok() +// .headers(headers) +// .body(resource); + } else { + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + return null; + } + } catch (IOException e) { + e.printStackTrace(); + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + return null; + } + } + + public static List<FileDTO> viewFileList(String directoryPath) { + List<FileDTO> fileList = new ArrayList<>(); + + File directory = new File(directoryPath); + if (directory.exists() && directory.isDirectory()) { + File[] files = directory.listFiles(); + if (files != null) { + for (File file : files) { + if (file.isFile()) { + FileDTO fileDTO = new FileDTO(file.getName(), file.length(), file.getAbsolutePath()); +// FileDTO fileDTO = new FileDTO(file.getName(), file.length()); + fileList.add(fileDTO); + } + } + } } - // 淇濆瓨鏂囦欢 - String fileName = file.getOriginalFilename(); - String filePath = savePath + fileName; - File dest = new File(filePath); - file.transferTo(dest); + return fileList; } + + @Data + public static class FileDTO { + private String name; + private long size; + private String path; + private boolean success; + private String errorMessage; + + public FileDTO(String name, long size, String path) { + this.name = name; + this.size = size; + this.path = path; + } + + public FileDTO(String name, long size) { + this.name = name; + this.size = size; +// this.path = path; + } + + public FileDTO(boolean success, String name, String errorMessage) { + this.success = success; + this.name = name; + this.errorMessage = errorMessage; + } + + // getters and setters + } + +// public static void main(String[] args) { +// String directoryPath = "/path/to/directory"; +// deleteFilesInDirectory(directoryPath); +// } } -- Gitblit v1.9.1