首页>代码>基于 SpringBoot + vue 企业信息管理系统>/liawan-vue/liawan-admin/src/main/java/com/javapub/liawan/admin/controller/common/CommonController.java
package com.javapub.liawan.admin.controller.common; import com.javapub.liawan.common.config.LiaWanConfig; import com.javapub.liawan.common.constant.Constants; import com.javapub.liawan.common.core.domain.AjaxResult; import com.javapub.liawan.common.utils.StringUtils; import com.javapub.liawan.common.utils.file.FileUploadUtils; import com.javapub.liawan.common.utils.file.FileUtils; import com.javapub.liawan.framework.config.ServerConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; 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 javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; /** * 通用请求处理 * * @author ruoyi */ @RestController @RequestMapping("/common") public class CommonController { private static final Logger log = LoggerFactory.getLogger(CommonController.class); private static final String FILE_DELIMETER = ","; @Autowired private ServerConfig serverConfig; /** * 通用下载请求 * * @param fileName 文件名称 * @param delete 是否删除 */ @GetMapping("/download") public void fileDownload(String fileName, 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 = LiaWanConfig.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); } } /** * 通用上传请求(单个) */ @PostMapping("/upload") public AjaxResult uploadFile(MultipartFile file) throws Exception { try { // 上传文件路径 String filePath = LiaWanConfig.getUploadPath(); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); 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()); return ajax; } catch (Exception e) { return AjaxResult.error(e.getMessage()); } } /** * 通用上传请求(多个) */ @PostMapping("/uploads") public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception { try { // 上传文件路径 String filePath = LiaWanConfig.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()); } } /** * 本地资源通用下载 */ @GetMapping("/download/resource") public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) throws Exception { try { if (!FileUtils.checkAllowDownload(resource)) { throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource)); } // 本地资源路径 String localPath = LiaWanConfig.getProfile(); // 数据库资源地址 String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); // 下载名称 String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); FileUtils.setAttachmentResponseHeader(response, downloadName); FileUtils.writeBytes(downloadPath, response.getOutputStream()); } catch (Exception e) { log.error("下载文件失败", e); } } }
最近下载更多
dapeng0011 LV13
3月2日
微信网友_6873044563791872 LV1
2月19日
肸乯 LV8
1月31日
xiexiaoming05 LV14
1月26日
siximu912 LV10
1月23日
zhangwuxuan
2023年12月31日
暂无贡献等级
Jingbo Jia LV2
2023年12月9日
1515465193 LV9
2023年11月30日
wuying8208 LV15
2023年11月28日
唐唐丶 LV33
2023年11月20日
最近浏览更多
860421 LV3
4月18日
可是不知道么 LV23
4月16日
微信网友_6935352109010944 LV2
4月5日
玖零定制问题修复 LV34
4月4日
微信网友_6927932988952576 LV12
3月30日
赵文俊
3月16日
暂无贡献等级
ChenZheMeng LV3
3月9日
2771547747
3月6日
暂无贡献等级
小王wang LV10
2月29日
dapeng0011 LV13
2月26日