package com.zy.asrs.controller; import com.core.common.R; import com.sun.prism.Image; import com.zy.asrs.entity.ImageView; 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 lombok.extern.slf4j.Slf4j; 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.nio.file.Files; import java.util.*; @Slf4j @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 R 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(mfile.getOriginalFilename())); boolean state = ImagePreviewUtils.saveImage(mfile, file); if (state) { // list.add(ImageUtil.getNewImagePath(newFileName)); //保存数据库的图片路径为 相对路径 list.add("uploadimage/" + mfile.getOriginalFilename()); } } // map.put("imgList", list); return R.ok("上传成功"); } //预览图片 @RequestMapping("/previewImage") @ApiOperation(value = "根据文件名实现预览功能") public String previewFile( HttpServletResponse response,String maktx) throws IOException { // String[] s = matnr.split("__"); showImg("D:\\"+"images\\"+maktx+".png", response,maktx); if("D:\\"+"images\\"+maktx+".png"!=null){ try { FileInputStream fis = new FileInputStream("D:\\"+"images\\"+maktx+".png"); ServletOutputStream os = response.getOutputStream(); byte [] b = new byte[1024*8]; while(fis.read(b)!=-1){ os.write(b); } } catch (FileNotFoundException e) { e.printStackTrace(); return "该简图不存在,请上传"; } catch (IOException e) { e.printStackTrace(); } } return ""; } public static void showImg(String path, HttpServletResponse response,String maktx){ } public static R showImgToBase64(String path, HttpServletResponse response,String maktx){ byte[] imageBytes = null; try { File file =new File(path); imageBytes = Files.readAllBytes(file.toPath()); }catch (IOException e){ e.printStackTrace(); return null; } String pics = Base64.getEncoder().encodeToString(imageBytes); List list = new ArrayList<>(); List imageViewList = new ArrayList<>(); ImageView imageView = new ImageView(); //String s = "http://192.168.0.2/image/"+pics+".jpg"; list.add(pics); imageView.setPics(list); imageView.setMaktx(maktx); imageViewList.add(imageView); //log.info(s); log.info(pics); return R.ok().add(imageViewList); } }