JSP上传图片并生成缩略图

本例子使用了jspsmart组件进行上传,这里可以免费下载该组件www.jspsmart.com
下载解压后,HI,os.0FJ络}将jar包复制到 /WEB-INF/lib 目录后重启服务器,jspsmart即可正常使用了

1、uploadimage.jsp

<%@ page contentType=”text/html;charset=gb2312″ language=”java”

import=”java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,
java.sql.*,com.jspsmart.upload.*,java.util.*,cn.oof.database.*,cn.oof.house.*”%>
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2=”",ext=”",testvar=”";
String url=”uploadfile/images/”;

//应保证在根目录中有此目录的存在
//初始化
mySmartUpload.initialize(pageContext);
//只允许上载此类文件
try {
mySmartUpload.setAllowedFilesList(“jpg,gif”);
//上载文件
mySmartUpload.upload();
} catch (Exception e){
%>

<SCRIPT language=javascript>

alert(“只允许上传.jpg和.gif类型图片文件”);

window.location=””upfile.jsp””;

</script>
<%
}
try{

com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);

if (myFile.isMissing()){%>

<SCRIPT language=javascript>

alert(“请先选择要上传的文件”);

window.location=””upfile.jsp””;

</script>

<%}

else{

//String myFileName=myFile.getFileName(); //取得上载的文件的文件名

ext= myFile.getFileExt();

//取得后缀名

int file_size=myFile.getSize();

//取得文件的大小

String saveurl=”";

if(file_size<file_size_max){

//更改文件名,k络O0Yt网z垠U供f的_eryf?的理X%ICp*q;D1uS1的^取得当前上传时间的毫秒数值

Calendar calendar = Calendar.getInstance();

String filename = String.valueOf(calendar.getTimeInMillis());

saveurl=request.getRealPath(“/”)+url;

saveurl+=filename+”.”+ext;

//保存路径

myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);

//out.print(filename);
//———————–上传完成,开始生成缩略图————————-

java.io.File file = new java.io.File(saveurl);

//读入刚才上传的文件

String newurl=request.getRealPath(“/”)+url+filename+”_min.”+ext;

//新的缩略图保存地址

Image src = javax.imageio.ImageIO.read(file);

//构造Image对象

float tagsize=200;

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 tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);

//绘制缩小后的图

FileOutputStream newimage=new FileOutputStream(newurl);

//输出到文件流

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

encoder.encode(tag);

//近JPEG编码

newimage.close();

}

else{

out.print(“<SCRIPT language=””javascript””>”);

out.print(“alert(””上传文件大小不能超过”+(file_size_max/1000)+”K””);”);

out.print(“window.location=””upfile.jsp;”””);

out.print(“</SCRIPT>”);

}

}
}catch (Exception e){

e.toString();

}
%>

2 upload.htm
<html>
<head>
<title>请选择上传的图片</title>
</head>
<body>
<table border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″>

<tr>

<td height=”45″ align=”center” valign=”middle”><form action=”uploadimage.jsp” method=”post” enctype=”multipart/form-data”

name=”form1″>
请选择上传的图片

<input type=”file” name=”file”>
<input type=”submit” name=”Submit” value=”上传”>

</form></td>

</tr>
</table>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值