记录一个和诡异的BUG
程序员文章站
2022-06-08 13:38:02
...
Map<String, Object> map = Maps.newHashMap(); if (key.equals(SignUtils.getKey(url))) { try { String path = request.getSession().getServletContext().getRealPath(url); String[] fv = path.split("\\."); File newFile = new File(fv[0]+"_sign.png"); // 用下面三行代码 生成的图片有延迟,就是生成完成几秒后才能访问,具体原因不明白 // String newUrl = fv[0]+"_sign.png"; // String newFilePath = request.getSession().getServletContext().getRealPath(newUrl);//fv[0]+"_sign.png"; // File newFile = new File(newFilePath); File oldFile = new File(request.getSession().getServletContext().getRealPath(url)); InputStream in = new FileInputStream(oldFile); byte[] b = IOUtils.toByteArray(in); b = ImageUtils.transferAlpha(ImageUtils.ByteToBufferedImage(b), 150, x, y, width, height, rotate); Files.write(b,newFile); map.put("result", true); map.put("url", SignUtils.getUrl()+newFile.getName()); } catch (Exception e) { e.printStackTrace(); map.put("result", false); map.put("message", "操作失败:"+e.getMessage()); } } else { map.put("result", false); map.put("message", "非法操作"); } response.flushBuffer(); return map;
这个程序是把一个web目录下的图片进行抠图处理,然进行另外命名保存处理,然后返回新的图片的路径,结果用注释掉的三行马*问就是访问不到,换一种写法就好了。
请看注释,其实两个获取的绝对路径是一模一样的,但是第二个(注释掉的代码)就是有延迟,要三四秒后才能访问到
推荐阅读
-
PyCharm的设置方法和第一个Python程序的建立
-
浅谈Android获取ImageView上的图片,和一个有可能遇到的问题
-
弹出一个带确认和取消的dialog实例
-
php中删除数组的第一个元素和最后一个元素的函数
-
js和jquery中循环的退出和继续学习记录
-
php 遍历一个文件夹下的所有文件和子文件
-
jquery的clone方法教程应用于textarea和select的bug修复
-
SqlServer2005中使用row_number()在一个查询中删除重复记录的方法
-
Mybaits 源码解析 (十二)----- Mybatis的事务如何被Spring管理?Mybatis和Spring事务中用的Connection是同一个吗?
-
唐朝历史第一个上拒绝皇帝的女人,抛弃荣华富贵和情郎双宿双飞