uploadAction.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.happy.action;
  2. import com.happy.Model.AdminManager;
  3. import com.happy.Model.FileInfo;
  4. import com.happy.Until.ResUtil;
  5. import com.happy.Until.ResponseUtil;
  6. import com.happy.Until.UUIDUtil;
  7. import com.happy.service.FileService;
  8. import com.opensymphony.xwork2.ActionSupport;
  9. import net.sf.json.JSONObject;
  10. import org.apache.commons.io.FileUtils;
  11. import org.apache.struts2.ServletActionContext;
  12. import org.apache.struts2.interceptor.ServletRequestAware;
  13. import javax.annotation.Resource;
  14. import javax.imageio.ImageIO;
  15. import javax.servlet.http.HttpServletRequest;
  16. import javax.servlet.http.HttpServletResponse;
  17. import java.awt.image.BufferedImage;
  18. import java.io.File;
  19. import java.io.FileInputStream;
  20. import java.util.List;
  21. public class uploadAction extends ActionSupport implements ServletRequestAware {
  22. private HttpServletRequest request;
  23. public HttpServletResponse response;
  24. private File myFile;
  25. private String myFileFileName;
  26. public String url_name;
  27. public String url;
  28. public String linkId;
  29. @Resource
  30. public FileService fileService;
  31. public HttpServletRequest getRequest() {
  32. return request;
  33. }
  34. public void setRequest(HttpServletRequest request) {
  35. this.request = request;
  36. }
  37. public void setServletRequest(HttpServletRequest request) {
  38. this.request = request;
  39. }
  40. public HttpServletResponse getResponse() {
  41. return response;
  42. }
  43. public void setResponse(HttpServletResponse response) {
  44. this.response = response;
  45. }
  46. public File getMyFile() {
  47. return myFile;
  48. }
  49. public void setMyFile(File myFile) {
  50. this.myFile = myFile;
  51. }
  52. public String getMyFileFileName() {
  53. return myFileFileName;
  54. }
  55. public void setMyFileFileName(String myFileFileName) {
  56. this.myFileFileName = myFileFileName;
  57. }
  58. public String getUrl_name() {
  59. return url_name;
  60. }
  61. public void setUrl_name(String url_name) {
  62. this.url_name = url_name;
  63. }
  64. public String getUrl() {
  65. return url;
  66. }
  67. public void setUrl(String url) {
  68. this.url = url;
  69. }
  70. // 上传图片
  71. public String himage(){
  72. JSONObject resultJson = new JSONObject();
  73. String filepath=request.getServletContext().getRealPath("/download/");
  74. if (myFile==null){
  75. resultJson.put("code", 500);
  76. resultJson.put("message", "请上传图片!");
  77. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  78. resultJson.toString());
  79. return null;
  80. }
  81. try{
  82. if (!filepath.endsWith("jpg") && !myFileFileName.endsWith("png")){
  83. resultJson.put("code", 500);
  84. resultJson.put("message", "请上传jpg或png格式文件!");
  85. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  86. resultJson.toString());
  87. return null;
  88. }
  89. Long uuid = UUIDUtil.generateID();
  90. File destFile = new File(filepath, uuid+myFileFileName);
  91. // 获取图片大小
  92. long size = myFile.length();
  93. // 获取图片尺寸
  94. BufferedImage sourceImg = ImageIO.read(new FileInputStream(myFile));
  95. // System.out.println(String.format("%.1f",myFile.length()/1024.0));// 源图大小
  96. // System.out.println(sourceImg.getWidth()); // 源图宽度
  97. // System.out.println(sourceImg.getHeight()); // 源图高度
  98. // 保存图片到指定位置
  99. FileUtils.copyFile(myFile, destFile);
  100. // 返回图片url路径
  101. String url = "https://chtech.ncjti.edu.cn/hotelReservation" + request.getSession().getServletContext().getContextPath();
  102. String fileurl = url + "/download/" + uuid + myFileFileName;
  103. FileInfo fileInfo = new FileInfo();
  104. fileInfo.setName(myFileFileName);
  105. fileInfo.setUrl(fileurl);
  106. fileInfo.setId(Math.toIntExact(UUIDUtil.generateID()));
  107. /* 保存入库 */
  108. int m = fileService.insertFile(fileInfo);
  109. if(m>0){
  110. resultJson.put("code", 200);
  111. resultJson.put("message", "上传成功");
  112. resultJson.put("data", fileInfo);
  113. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  114. }else{
  115. resultJson.put("code", 502);
  116. resultJson.put("message", "上传失败");
  117. ResponseUtil.writeJson(ServletActionContext.getResponse(),resultJson.toString());
  118. }
  119. }catch (Exception e){
  120. resultJson.put("code", 502);
  121. resultJson.put("message", "操作异常");
  122. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  123. resultJson.toString());
  124. return null;
  125. }
  126. resultJson.put("code", 500);
  127. resultJson.put("message", "上传失败");
  128. ResponseUtil.writeJson(ServletActionContext.getResponse(),
  129. resultJson.toString());
  130. return null;
  131. }
  132. /**
  133. * 描述:根据关联Id查询附件
  134. * @return
  135. */
  136. public String getByLinkId(){
  137. JSONObject resultJson = new JSONObject();
  138. if (linkId == null) {
  139. resultJson.put("message", "请传入关联id");
  140. resultJson.put("code", 500);
  141. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  142. return null;
  143. }
  144. List<FileInfo> fileInfoList = fileService.queryList("and link_id ='"+linkId+"'");
  145. if (fileInfoList != null) {
  146. resultJson.put("message", "查询成功");
  147. resultJson.put("code", 200);
  148. resultJson.put("data", fileInfoList);
  149. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  150. return null;
  151. }else{
  152. resultJson.put("message", "未查到存在关联附件");
  153. resultJson.put("code", 500);
  154. ResUtil.writeJson(ServletActionContext.getResponse(), resultJson.toString());
  155. return null;
  156. }
  157. }
  158. }