| | |
| | | package com.ruoyi.web.controller.common; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.security.core.parameters.P; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | import com.ruoyi.common.config.RuoYiConfig; |
| | |
| | | |
| | | private static final String FILE_DELIMETER = ","; |
| | | |
| | | /** |
| | | * 通用下载请求 |
| | | * |
| | | * @param fileName 文件名称 |
| | | * @param delete 是否删除 |
| | | */ |
| | | @GetMapping("/download") |
| | | public void fileDownload(@PathParam("fileName") String fileName, @PathParam("delete") Boolean delete, HttpServletResponse response, HttpServletRequest request) |
| | | { |
| | | try |
| | | { |
| | | if (!FileUtils.checkAllowDownload(fileName)) |
| | | { |
| | | throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); |
| | | } |
| | | String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); |
| | | String filePath = RuoYiConfig.getDownloadPath() + fileName; |
| | | // @GetMapping("/downloadFile") |
| | | // public void fileDownload(@PathParam("path") String path, HttpServletResponse response) |
| | | // { |
| | | // path=path.substring(8); |
| | | // try |
| | | // { |
| | | // if (!FileUtils.checkAllowDownload(path)) |
| | | // { |
| | | // throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", path)); |
| | | // } |
| | | // String realFileName = System.currentTimeMillis() + path.substring(path.indexOf("_") + 1); |
| | | // String filePath = RuoYiConfig.getProfile() + path; |
| | | // |
| | | // response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); |
| | | // FileUtils.setAttachmentResponseHeader(response, realFileName); |
| | | // FileUtils.writeBytes(filePath, response.getOutputStream()); |
| | | // |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // log.error("下载文件失败", e); |
| | | // } |
| | | // } |
| | | |
| | | response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); |
| | | FileUtils.setAttachmentResponseHeader(response, realFileName); |
| | | FileUtils.writeBytes(filePath, response.getOutputStream()); |
| | | if (delete) |
| | | { |
| | | FileUtils.deleteFile(filePath); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | log.error("下载文件失败", e); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | // /** |
| | | // * 通用下载请求 |
| | | // * |
| | | // * @param fileName 文件名称 |
| | | // * @param delete 是否删除 |
| | | // */ |
| | | // @GetMapping("/download") |
| | | // public void fileDownload(@PathParam("fileName") String fileName, @PathParam("delete") Boolean delete, HttpServletResponse response) |
| | | // { |
| | | // try |
| | | // { |
| | | // if (!FileUtils.checkAllowDownload(fileName)) |
| | | // { |
| | | // throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); |
| | | // } |
| | | // String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); |
| | | // String filePath = RuoYiConfig.getDownloadPath() + fileName; |
| | | // |
| | | // response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); |
| | | // FileUtils.setAttachmentResponseHeader(response, realFileName); |
| | | // FileUtils.writeBytes(filePath, response.getOutputStream()); |
| | | // if (delete) |
| | | // { |
| | | // FileUtils.deleteFile(filePath); |
| | | // } |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // log.error("下载文件失败", e); |
| | | // } |
| | | // } |
| | | |
| | | @GetMapping("/downLoadFile") |
| | | public AjaxResult downLoadFile(@RequestParam("path") String path,HttpServletResponse response) throws Exception { |
| | | return downLoadFileService.downLoadFile(path,response); |
| | | public void downLoadFile(@PathParam("path") String path, HttpServletResponse response) throws Exception { |
| | | downLoadFileService.downLoadFile(path,response); |
| | | } |
| | | |
| | | |
| | |
| | | * 通用上传请求(单个) |
| | | */ |
| | | @PostMapping("/upload") |
| | | public AjaxResult uploadFile(@RequestParam("uploadFile") MultipartFile file) throws Exception |
| | | public AjaxResult uploadFile(@RequestParam("uploadFile") MultipartFile file,String fname) throws Exception |
| | | { |
| | | try |
| | | { |
| | | // 上传文件路径 |
| | | String filePath = RuoYiConfig.getUploadPath(); |
| | | // 上传并返回新文件名称 |
| | | String fileName = FileUploadUtils.upload(filePath, file); |
| | | String fileName = FileUploadUtils.upload(filePath, file,fname); |
| | | String url = serverConfig.getUrl() + fileName; |
| | | |
| | | AjaxResult ajax = AjaxResult.success(); |
| | | ajax.put("url", url); |
| | | ajax.put("fileName", fileName); |
| | | ajax.put("newFileName", FileUtils.getName(fileName)); |
| | | ajax.put("originalFilename", file.getOriginalFilename()); |
| | | |
| | | HashMap<String, Object> data = new HashMap<>(); |
| | | data.put("url", url); |
| | | data.put("fileName", fileName); |
| | | data.put("newFileName", FileUtils.getName(fileName)); |
| | | data.put("originalFilename", file.getOriginalFilename()); |
| | | |
| | | ajax.put("msg","操作成功"); |
| | | ajax.put("data",data); |
| | | return ajax; |
| | | } |
| | | catch (Exception e) |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 通用上传请求(多个) |
| | | */ |
| | | @PostMapping("/uploads") |
| | | public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception |
| | | { |
| | | try |
| | | { |
| | | // 上传文件路径 |
| | | String filePath = RuoYiConfig.getUploadPath(); |
| | | List<String> urls = new ArrayList<String>(); |
| | | List<String> fileNames = new ArrayList<String>(); |
| | | List<String> newFileNames = new ArrayList<String>(); |
| | | List<String> originalFilenames = new ArrayList<String>(); |
| | | for (MultipartFile file : files) |
| | | { |
| | | // 上传并返回新文件名称 |
| | | String fileName = FileUploadUtils.upload(filePath, file); |
| | | String url = serverConfig.getUrl() + fileName; |
| | | urls.add(url); |
| | | fileNames.add(fileName); |
| | | newFileNames.add(FileUtils.getName(fileName)); |
| | | originalFilenames.add(file.getOriginalFilename()); |
| | | } |
| | | AjaxResult ajax = AjaxResult.success(); |
| | | ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); |
| | | ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); |
| | | ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER)); |
| | | ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); |
| | | return ajax; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return AjaxResult.error(e.getMessage()); |
| | | } |
| | | } |
| | | // /** |
| | | // * 通用上传请求(多个) |
| | | // */ |
| | | // @PostMapping("/uploads") |
| | | // public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception |
| | | // { |
| | | // try |
| | | // { |
| | | // // 上传文件路径 |
| | | // String filePath = RuoYiConfig.getUploadPath(); |
| | | // List<String> urls = new ArrayList<String>(); |
| | | // List<String> fileNames = new ArrayList<String>(); |
| | | // List<String> newFileNames = new ArrayList<String>(); |
| | | // List<String> originalFilenames = new ArrayList<String>(); |
| | | // for (MultipartFile file : files) |
| | | // { |
| | | // // 上传并返回新文件名称 |
| | | // String fileName = FileUploadUtils.upload(filePath, file); |
| | | // String url = serverConfig.getUrl() + fileName; |
| | | // urls.add(url); |
| | | // fileNames.add(fileName); |
| | | // newFileNames.add(FileUtils.getName(fileName)); |
| | | // originalFilenames.add(file.getOriginalFilename()); |
| | | // } |
| | | // AjaxResult ajax = AjaxResult.success(); |
| | | // ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER)); |
| | | // ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER)); |
| | | // ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER)); |
| | | // ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER)); |
| | | // return ajax; |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // return AjaxResult.error(e.getMessage()); |
| | | // } |
| | | // } |
| | | |
| | | /** |
| | | * 本地资源通用下载 |