JAVA网页编程之JSP上传图片并天生缩略图
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)js|上传|上传图片|缩略图本例子利用了jspsmart组件举行上传,这里能够收费下载该组件www.jspsmart.com下载解压后,将jar包复制到 WEB-INFlib 目次后重启服务器,jspsmart便可一般利用了
1、uploadimage.jsp
<%@pagecontentType="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.*"%>
<%
SmartUploadmySmartUpload=newSmartUpload();
longfile_size_max=4000000;
StringfileName2="",ext="",testvar="";
Stringurl="uploadfile/images/";//应包管在根目次中有此目次的存在
//初始化
mySmartUpload.initialize(pageContext);
//只同意上载此类文件
try{
mySmartUpload.setAllowedFilesList("jpg,gif");
//上载文件
mySmartUpload.upload();
}catch(Exceptione){
%>
<SCRIPTlanguage=javascript>
alert("只同意上传.jpg和.gif范例图片文件");
window.location=upfile.jsp;
</script>
<%
}
try{
com.jspsmart.upload.FilemyFile=mySmartUpload.getFiles().getFile(0);
if(myFile.isMissing()){%>
<SCRIPTlanguage=javascript>
alert("请先选择要上传的文件");
window.location=upfile.jsp;
</script>
<%}
else{
//StringmyFileName=myFile.getFileName();//获得上载的文件的文件名
ext=myFile.getFileExt();//获得后缀名
intfile_size=myFile.getSize();//获得文件的巨细
Stringsaveurl="";
if(file_size<file_size_max){
//变动文件名,获得以后上传工夫的毫秒数值
Calendarcalendar=Calendar.getInstance();
Stringfilename=String.valueOf(calendar.getTimeInMillis());
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext;//保留路径
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//out.print(filename);
//-----------------------上传完成,入手下手天生缩略图-------------------------
java.io.Filefile=newjava.io.File(saveurl);//读进方才上传的文件
Stringnewurl=request.getRealPath("/")+url+filename+"_min."+ext;//新的缩略图保留地点
Imagesrc=javax.imageio.ImageIO.read(file);//机关Image对象
floattagsize=200;
intold_w=src.getWidth(null);//失掉源图宽
intold_h=src.getHeight(null);
intnew_w=0;
intnew_h=0;//失掉源图长
inttempsize;
floattempdouble;
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);//盘算新图长宽
BufferedImagetag=newBufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);//绘制减少后的图
FileOutputStreamnewimage=newFileOutputStream(newurl);//输入到文件流
JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag);//近JPEG编码
newimage.close();
}
else{
out.print("<SCRIPTlanguage=javascript>");
out.print("alert(上传文件巨细不克不及凌驾"+(file_size_max/1000)+"K);");
out.print("window.location=upfile.jsp;");
out.print("</SCRIPT>");
}
}
}catch(Exceptione){
e.toString();
}
%>
2upload.htm
<html>
<head>
<title>请选择上传的图片</title>
</head>
<body>
<tableborder="0"align="center"cellpadding="0"cellspacing="0">
<tr>
<tdheight="45"align="center"valign="middle"><formaction="uploadimage.jsp"method="post"enctype="multipart/form-data"name="form1">
请选择上传的图片
<inputtype="file"name="file">
<inputtype="submit"name="Submit"value="上传">
</form></td>
</tr>
</table>
</body>
</html>
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。 是一种使网页(Web Page)产生生动活泼画面的语言 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 Java 编程语言的风格十分接近C、C++语言。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页:
[1]