package com.zy.asrs.controller; import com.zy.asrs.utils.ImagePreviewUtils; import com.zy.common.web.BaseController; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.*; @RestController @RequestMapping() public class ImagePreviewController extends BaseController { //上传图片 @ApiResponses({@ApiResponse(code = 200, message = "上传成功"), @ApiResponse(code = 400, message = "上传失败"), @ApiResponse(code = 500, message = "服务器内部错误")}) //@RequestMapping(value = "/saveImage", method = RequestMethod.POST) public Map saveImage(@RequestParam("files") MultipartFile[] files) { Map map = new HashMap<>(); List list = new ArrayList<>(); for (int i = 0; i < files.length; i++) { MultipartFile mfile = files[i]; //获取文件后缀 String suffixName = ImagePreviewUtils.getSaveImagePath(mfile); //生成新文件名称 String newFileName = ImagePreviewUtils.getNewImageFileName(suffixName); //保存文件 File file = new File(ImagePreviewUtils.getNewImagePath(newFileName)); boolean state = ImagePreviewUtils.saveImage(mfile, file); if (state) { // list.add(ImageUtil.getNewImagePath(newFileName)); //保存数据库的图片路径为 相对路径 list.add("uploadimage/" + newFileName); } } map.put("imgList", list); return map; } //预览图片 //@RequestMapping("previewImage") @ApiOperation(value = "根据文件名实现预览功能") public void previewFile( HttpServletResponse response) throws IOException { showImg("D:\\"+"images\\"+"20251022efda188c-56b3-4c38-9940-78d0b61b43a1.png", response); } public static void showImg(String path, HttpServletResponse response){ if(path!=null&&!path.equals("")){ try { FileInputStream fis = new FileInputStream(path); ServletOutputStream os = response.getOutputStream(); byte [] b = new byte[1024*8]; while(fis.read(b)!=-1){ os.write(b); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } }