下載地址:
jspSmartUpload.rar
一、安裝
jspSmartUpload是由www.jspsmart.com網站開發的一個可免費使用的全功能的文件上傳下載組件,適于嵌入執行上傳下載操作的JSP文件中。該組件幾個特點:
1、使用簡單。在JSP文件中僅僅書寫三五行java代碼就可以搞定文件的上傳或下載,方便。
2、能全程控制上傳。利用jspSmartUpload組件提供的對象及其操作方法,可以獲得全部上傳文件的信息(包括文件名,大小,類型,擴展名,文件數據等),方便存取。
3、能對上傳的文件在大小、類型等方面做出限制。如此可以濾掉不符合要求的文件。
4、下載靈活。僅寫兩行代碼,就能把Web服務器變成文件服務器。不管文件在Web服務器的目錄下或在其它任何目錄下,都可以利用jspSmartUpload進行下載。
5、能將文件上傳到數據庫中,也能將數據庫中的數據下載下來。這種功能針對的是MySQL數據庫,因為不具有通用性,所以本文不準備舉例介紹這種用法。
下載后,用WinZip或WinRAR將其解壓到Tomcat的webapps目錄下(本文以Tomcat服務器為例進行介紹)。解壓后,將webapps/jspsmartupload目錄下的子目錄Web-inf名字改為全大寫的WEB-INF,這樣一改jspSmartUpload類才能使用。因為Tomcat對文件名大小寫敏感,它要求Web應用程序相關的類所在目錄為WEB-INF,且必須是大寫。接著重新啟動Tomcat,這樣就可以在JSP文件中使用jspSmartUpload組件了。
注意,按上述方法安裝后,只有webapps/jspsmartupload目錄下的程序可以使用jspSmartUpload組件,如果想讓Tomcat服務器的所有Web應用程序都能用它,必須做如下工作:
1.進入命令行狀態,將目錄切換到Tomcat的webapps/jspsmartupload/WEB-INF目錄下。
2.運行JAR打包命令:jar cvf jspSmartUpload.jar com
(也可以打開資源管理器,切換到當前目錄,用WinZip將com目錄下的所有文件壓縮成jspSmartUpload.zip,然后將jspSmartUpload.zip換名為jspSmartUpload.jar文件即可。)
3.將jspSmartUpload.jar拷貝到Tomcat的shared/lib目錄下。
配置好后,如何使用呢,共有3個頁面,主頁面(添加頁面news_add.jsp),彈出頁面(upload.htm),上傳頁面(uploadimages.jsp)。例子如下:
主頁面表單:
<form id="form1" name="form1" method="post" target="_self">
<tr>
<td bgcolor="#FFFFFF">縮略圖片:</td>
<td bgcolor="#FFFFFF"><input name="picurl" type="text" id="picurl" size="50" />
<input type="button" name="Submit2" value="打開上傳頁面" onClick="window.open('upload.htm','','status=no,scrollbars=no,top=20,left=110,width=420,height=165')"/></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">縮略圖預覽:</td>
<td bgcolor="#FFFFFF"><img name="pic" src="" width="80" height="80" alt="" /></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> </td>
<td align="center" bgcolor="#FFFFFF"><input type="submit" name="Submit" value="添加" />
<input type="reset" name="Reset" value="重置" /></td>
</tr>
</table>
</form>
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="myform">
請選擇上傳的圖片
<input type="file" name="file"><input type="submit" name="Submit" value="上傳">
</form></td>
</tr>
</table>
</body>
</html>
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.*"%>
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="UploadFile/"; //應保證在根目錄中有此目錄的存在(也就是說需要自己建立相應的文件夾)
//初始化
mySmartUpload.initialize(pageContext);
//只允許上載此類文件
try {
mySmartUpload.setAllowedFilesList("jpg,gif");//此處的文件格式可以根據需要自己修改
//上載文件
mySmartUpload.upload();
} catch (Exception e){
%>
<SCRIPT language=javascript>
alert("只允許上傳.jpg和.gif類型圖片文件");
window.location='upload.htm';
</script>
<%
}
try{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){%>
<SCRIPT language=javascript>
alert("請先選擇要上傳的文件");
window.location='upload.htm';
</script>
<%}
else{
//String myFileName=myFile.getFileName(); //取得上載的文件的文件名
ext= myFile.getFileExt(); //取得后綴名
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
if(file_size<file_size_max){
//更改文件名,取得當前上傳時間的毫秒數值
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=application.getRealPath("/")+url; //絕對路徑
saveurl+=filename+"."+ext; //保存路徑
myFile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL);
//out.print(saveurl);
//String ret = "window.opener.document.form1.pic.focus();";
//ret += "var range = parent.HtmlEdit.document.selection.createRange();" ;
//ret += "range.pasteHTML('<img src=\"" + request.getContextPath() + "/UploadFile/" + filename + "." + ext + "\">');" ;
//ret += "alert('上傳成功!');";
//ret += "window.location='upload.htm';";
out.print("<script language=javascript>window.opener.document.form1.picurl.value='"+"/UploadFile/" + filename + "." + ext+"'</script>");
out.print("<script language=javascript>window.opener.document.form1.pic.src='"+"../../UploadFile/" + filename + "." + ext+"'</script>");
out.print("<script language=javascript>window.close();</script>");
}
}
}catch (Exception e){
out.print(e.toString());
}
%>
upload.htm下載:
upload.rar
uploadimages.jsp下載:
uploadimage.rar