123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package com.boman.file.controller;
- import com.boman.domain.dto.AjaxResult;
- import com.boman.domain.dto.FileDto;
- import org.apache.commons.lang3.BooleanUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import com.boman.domain.dto.R;
- import com.boman.common.core.utils.file.FileUtils;
- import com.boman.file.service.ISysFileService;
- import com.boman.domain.SysFile;
- import javax.servlet.http.HttpServletResponse;
- import java.io.*;
- import java.net.URL;
- import java.util.List;
- /**
- * 文件请求处理
- *
- * @author ruoyi
- */
- @RestController
- public class SysFileController
- {
- private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
- @Autowired
- private ISysFileService sysFileService;
- /**
- * 文件上传请求
- */
- @PostMapping("upload")
- public R<SysFile> upload(MultipartFile file)
- {
- try
- {
- // 上传并返回访问地址
- List<String> urlList = sysFileService.uploadFile(file);
- SysFile sysFile = new SysFile();
- String staticPath = urlList.get(0);
- String absolutePath = urlList.get(1);
- sysFile.setName(FileUtils.getName(staticPath));
- sysFile.setUrl(staticPath);
- sysFile.setAbsolutePath(absolutePath);
- return R.ok(sysFile);
- }
- catch (Exception e)
- {
- log.error("上传文件失败", e);
- return R.fail(e.getMessage());
- }
- }
- /**
- * 通用上传请求
- */
- @PostMapping("/upload/base64")
- public AjaxResult uploadFileBase64(@RequestBody String base64) {
- try {
- List<String> urlList = sysFileService.uploadFileBase64(base64);
- String staticPath = urlList.get(0);
- String absolutePath = urlList.get(1);
- AjaxResult ajax = AjaxResult.success();
- ajax.put("name", FileUtils.getName(staticPath));
- ajax.put("url", staticPath);
- ajax.put("absolutePath", absolutePath);
- return ajax;
- } catch (Exception e) {
- return AjaxResult.error(e.getMessage());
- }
- }
- /**
- * 通用上传请求
- */
- @PostMapping("/previewAndDownload")
- public void previewAndDownload(@RequestBody FileDto dto, HttpServletResponse response) throws RuntimeException, IOException {
- sysFileService.previewAndDownload(dto, response);
- }
- }
|