诶,烦,求教,在网上找到的制作缩略图的代码
//-----------------------上传完成,开始生成缩略图-------------------------
String filename = su.getFiles().getFile(0).getFileName()+"";
String saveurl = request.getRealPath("/")+folder+"/"+filename;
String url = folder+"/";
java.io.File file = new java.io.File(saveurl); //读入刚才上传的文件
String newurl=request.getRealPath("/")+url+"min_"+filename; //新的缩略图保存地址
Image src = javax.imageio.ImageIO.read(file); //构造Image对象 int old_w=src.getWidth(null); //得到源图宽
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //得到源图长
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
BufferedImage image = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);//创建一个BufferedImage来作为图像*作容器 image.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); //绘制缩小后的图
FileOutputStream newimage = new FileOutputStream(newurl); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(image); //近JPEG编码
newimage.close();我用这个在windows下用的挺好,可我上传到我的linux服务器上就不行了,郁闷
下面是错误代码:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /jspsmart.jsp at line 8582: image.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); //绘制缩小后的图
83: FileOutputStream newimage = new FileOutputStream(newurl); //输出到文件流
84: JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
85: encoder.encode(image); //近JPEG编码
86: newimage.close();
87:
88: /**
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
org.apache.jsp.jspsmart_jsp._jspService(jspsmart_jsp.java:157)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.28
//-----------------------上传完成,开始生成缩略图-------------------------
String filename = su.getFiles().getFile(0).getFileName()+"";
String saveurl = request.getRealPath("/")+folder+"/"+filename;
String url = folder+"/";
java.io.File file = new java.io.File(saveurl); //读入刚才上传的文件
String newurl=request.getRealPath("/")+url+"min_"+filename; //新的缩略图保存地址
Image src = javax.imageio.ImageIO.read(file); //构造Image对象 int old_w=src.getWidth(null); //得到源图宽
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //得到源图长
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//计算新图长宽
BufferedImage image = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);//创建一个BufferedImage来作为图像*作容器 image.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); //绘制缩小后的图
FileOutputStream newimage = new FileOutputStream(newurl); //输出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(image); //近JPEG编码
newimage.close();我用这个在windows下用的挺好,可我上传到我的linux服务器上就不行了,郁闷
下面是错误代码:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /jspsmart.jsp at line 8582: image.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); //绘制缩小后的图
83: FileOutputStream newimage = new FileOutputStream(newurl); //输出到文件流
84: JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
85: encoder.encode(image); //近JPEG编码
86: newimage.close();
87:
88: /**
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
org.apache.jsp.jspsmart_jsp._jspService(jspsmart_jsp.java:157)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.28 logs.
--------------------------------------------------------------------------------Apache Tomcat/6.0.28
-Djava.awt.headless=true