uploadAction.java 6.3 KB

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