FileZtController.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.idea.util;
  2. import com.rockstar.common.domain.AjaxResult;
  3. import com.rockstar.common.file.FileUtils;
  4. import com.rockstar.frame.model.FrameData;
  5. import com.rockstar.frame.model.FrameDataExample;
  6. import com.rockstar.frame.service.FrameDataService;
  7. import com.rockstar.util.StringUtils;
  8. import io.swagger.annotations.Api;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.*;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import java.io.*;
  15. import java.util.*;
  16. /**
  17. * 自用文件相关的方法
  18. */
  19. @Controller
  20. @RequestMapping(value = "FileZtController")
  21. @Api(value = "文件相关信息")
  22. public class FileZtController {
  23. @Autowired
  24. private FrameDataService frameDataService;
  25. /**
  26. * 通过文件id获取文件的文件名,创建时间的信息
  27. *
  28. * @param ids
  29. * @param response
  30. * @param request
  31. */
  32. @PostMapping(value = "findFileInfoByIds/{ids}",produces = {"application/json;charset=UTF-8"})
  33. @ResponseBody
  34. public AjaxResult findFileInfoByIds(@PathVariable("ids") String ids, HttpServletResponse response, HttpServletRequest request) {
  35. System.out.println("findFileInfoByIds start");
  36. // for (String id : split) {
  37. // FrameData frameData = frameDataService.selectByPrimaryKey(id);
  38. // HashMap<String,Object> map=new HashMap<>();
  39. // map.put("fileName", frameData.getFileName());
  40. // map.put("createdAt",frameData.getCreatedAt());
  41. // map.put("id",id);
  42. // }
  43. if (StringUtils.isEmpty(ids)) {
  44. return AjaxResult.error("请传入文件id");
  45. }
  46. String[] split = ids.split(",");
  47. FrameDataExample example = new FrameDataExample();
  48. example.setOrderByClause("created_at");
  49. example.createCriteria().andIdIn(Arrays.asList(split));
  50. List<FrameData> frameDatas = frameDataService.selectByExample(example);
  51. ArrayList<Map<String, Object>> list_map = new ArrayList<>();
  52. Map<String, Object> map=null;
  53. for (FrameData frameData : frameDatas) {
  54. map = new HashMap<>();
  55. map.put("fileName", frameData.getFileName());
  56. map.put("createdAt", frameData.getCreatedAt());
  57. map.put("id", frameData.getId());
  58. list_map.add(map);
  59. }
  60. return AjaxResult.success(list_map);
  61. }
  62. @GetMapping({"/viewImg/{id}"})
  63. public void viewIMG(@PathVariable("id") String id, HttpServletRequest request, HttpServletResponse response) {
  64. FrameData frameData = this.frameDataService.selectByPrimaryKey(id);
  65. try {
  66. if (null != frameData) {
  67. String contentType = frameData.getFileContentType();
  68. if (StringUtils.isNotEmpty(contentType) && contentType.indexOf("image/") == -1) {
  69. FileUtils.downFile(response, frameData.getFileName(), frameData.getFilePath(), frameData.getFileContentType());
  70. } else {
  71. readIMGToHtml(request, response, frameData.getFilePath());
  72. }
  73. } else {
  74. readIMGToHtml(request, response, "error");
  75. }
  76. } catch (IOException var6) {
  77. var6.printStackTrace();
  78. }
  79. }
  80. public static void readIMGToHtml(HttpServletRequest request, HttpServletResponse response, String fileUrl) throws IOException {
  81. File desc = new File(fileUrl);
  82. InputStream inputStream = null;
  83. if (!desc.exists()) {
  84. inputStream = FileUtils.class.getResourceAsStream("/static/no_image.jpg");
  85. } else {
  86. inputStream = new FileInputStream(fileUrl);
  87. }
  88. readIMGToHtml(response, (InputStream)inputStream);
  89. }
  90. public static void readIMGToHtml(HttpServletResponse response, InputStream inputStream) throws IOException {
  91. int i = inputStream.available();
  92. byte[] buff = new byte[i];
  93. inputStream.read(buff);
  94. inputStream.close();
  95. response.reset();
  96. response.setContentType("image/jpg");
  97. OutputStream out = response.getOutputStream();
  98. out.write(buff);
  99. out.close();
  100. }
  101. }