谁帮我看一下,以下的代码!然后回答是出在哪里。
-------test.jsp-----
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import=" java.io.*" %>
<%@ page import=" java.util.*" %>
<%@ page import =" com.sun.image.codec.jpeg.*" %>
<%@ page import=" java.awt.image.*" %>
<%@ page import=" java.awt.*" %>
<%@ page import =" javax.swing.ImageIcon" %>
<%
String imageurl="f://1122425546.jpg";
String on = (String)request.getParameter("on");
if(on != null)
{
out.println("----正生成-----");
try
{
ImageIcon imgIcon = new ImageIcon(imageurl);
Image imageOriginal = imgIcon.getImage();
int widthOriginal = imageOriginal.getWidth(null);
int heightOriginal = imageOriginal.getHeight(null);
BufferedImage buffImg = new BufferedImage(widthOriginal, heightOriginal,
BufferedImage.TYPE_INT_RGB);
Graphics g = buffImg.createGraphics();
//旋转180度
g.drawImage(imageOriginal, 0, 0, widthOriginal, heightOriginal, 0,
heightOriginal, widthOriginal, 0, null);
g.dispose();
FileOutputStream fos = new FileOutputStream(imageurl);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(buffImg);
bos.flush();
bos.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
%>
<html>
<head>
<title>图像旋转</title>
</head>
<body bgcolor="#DDDDDD">
<form method="post" name=test1 action="">
<table width="100%" height="100%" border="0">
<tr>
<td height="40" align="left" ><div align="left" id="msg"></div>
旋转:
<select id="mode1" name="mode1" size="1" >
<option value="0" selected>旋转180</option>
</select> <input name="appbtn" type="submit" class="btn" value=" 确 定 " ></td>
</tr>
<tr>
<td valign="middle"></td>
</tr>
</table>
<input type=hidden name="imageurl" value="<%=imageurl%>">
<input type="hidden" name="on" value="on">
</form>
</body>
</html>
是这样的,以上的代码是每提交确定一次,就对一张相片进行旋转180度
但是,我第一次提交就可以转180度。然后接下来提交就不行。
(不要怀疑编辑图片代码错。因为我用这段代码放在类里。
然后运行类,完全没问题。每运行一次类,就旋转180度)
并且还有一个怪的现象。就是第一次提交旋转180度之后,我把这张相片删除掉。
奇怪的是,第二次提交的时候,根本不会在new ImageIcon(imageurl)的时候出错!
并且又生成了一张。
是不是上一次的图片流,还在缓存保存起来了啊!!!!
真是怪事。
大家运行一下,试试看。我用的是用weblogic