struts2图片上传问题 tmp中临时文件问题
@Action(value="addtopic", results={@Result(name="success",type="ftl",location="/mkt/topic/topic-release.html")}) public String addTopic() throws Exception{ String name= paramString("name"); String introduction = paramString("introduction"); int isdisplay = paramInt("isdisplay"); //0:不显示到话题广场 1:显示到广场 if(StringUtils.isEmpty(name) || StringUtils.isEmpty(introduction)){ message("参数不能为空"); } logger.info(file.getAbsolutePath()); if(this.file == null){ message("您上传的图片为空"); return MSG; } Boolean isImage = ImageUtil.fileIsImage(file); //判断是否是图片 if(isImage == false){ message("您上传的图片格式不正确"); return MSG; } long a = file.length(); if(a >= 1048576*3){ message("你上传的图片大于3M,请更换成小于3M的图片!"); return MSG; } //生成缩略图 BufferedImage srcImage =null; BufferedImage destImage =null; ByteArrayOutputStream out = new ByteArrayOutputStream(); try{ srcImage = ImageIO.read(file); int srcWidth = srcImage.getWidth(null);//原图片宽度 int srcHeight = srcImage.getHeight(null);//原图片高度 int dstHeight = srcHeight; if(srcHeight > 220){ dstHeight = 220; } int dstWidth = (int)(dstHeight*srcWidth*1.0/srcHeight); destImage = new BufferedImage(dstWidth, dstHeight, BufferedImage.TYPE_INT_RGB); destImage.getGraphics().drawImage(srcImage, 0, 0, dstWidth, dstHeight,null); ImageIO.write(destImage, "jpg", out); }catch(Exception e){ logger.error("", e); }
当这个action返回值设为string类型时 ,tmp中的文件一直在虚拟机中的内存中,不能被删除,当设为void类型时,struts2会自动删除tmp中的文件,什么原因呢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
嗯,的确是的,后来仔细检查了一遍
流没关闭吧?
没人遇到过吗