SmartUpload組件是一款在進行jsp開發時會經常使用到的重要組件,這款軟件主要的作用就是幫助用戶解決下載文件時會出現的中文亂碼問題。并且SmartUpload.jar還可以用來對文件進行控制和管理,從而幫助你濾掉不符合要求的文件。
SmartUpload.jar是一款java相關客戶端應用,用戶評價還是不錯的。smartupload近日推出了中文版版本,修復了若干bug,提升了軟件使用的流暢性,加上美觀的界面,jspSmartUpload.jar新版一定能給用戶帶來一個更好的體驗。
1、能對上傳的文件在大小、類型等方面做出限制。如此可以濾掉不符合要求的文件。
2、在JSP文件中僅僅書寫三五行java代碼就可以搞定文件的上傳或下載,方便。
3、smartupload.jar包可以能全程控制上傳。使用jspSmartUpload組件提供的對象及其操作方法,可以獲得全部上傳文件的信息《包含文件名,大小,類型,擴展名,文件數據等》,方便存取。
4、僅寫兩行代碼,就能將Web服務器變成文件服務器。不論文件在Web服務器的目錄下或在其它所有目錄下,都能使用jspSmartUpload進行下載。
上傳
// 新建一個SmartUpload對象
SmartUpload su = new SmartUpload();
// 上傳初始化
su.initialize(pageContext);
// 限制每個上傳文件的最大長度。
su.setMaxFileSize(10000);
// 限制總上傳數據的長度。
su.setTotalMaxFileSize(20000);
// 設定允許上傳的文件(通過擴展名限制),僅允許doc,txt文件。
su.setAllowedFilesList(doc,txt);
// 設定禁止上傳的文件(通過擴展名限制),禁止上傳帶有exe,bat,
//jsp,htm,html擴展名的文件和沒有擴展名的文件。
su.setDeniedFilesList(exe,bat,jsp,htm,html,);
// 上傳文件
su.upload();
// 將上傳文件全部保存到指定目錄
int count = su.save(/upload);
下載
// 新建一個SmartUpload對象
SmartUpload su = new SmartUpload();
// 初始化
su.initialize(pageContext);
// 設定contentDisposition為null以禁止瀏覽器自動打開文件,
//保證點擊鏈接后是下載文件。若不設定,則下載的文件擴展名為
//doc時,瀏覽器將自動用word打開它。擴展名為pdf時,
//瀏覽器將用acrobat打開。
su.setContentDisposition(null);
問題一:jspSmartUpload上傳的文件保存到哪去了?
答案:默認是在真正部署應用服務器中,在哪個應用下,
比如將項目部署在tomcat中,在jsp項目中運行的,而最后保存的路徑su.save("upload");
那么文件會保存在tomcat部署jsp應用下,upload文件夾中;
如果是通過eclipse,關聯的tomcat,在jsp項目中運行,最后保存路徑為su.save("upload");
那么文件會保存在本機中,eclipse的workspace下.metadata.pluginsorg.eclipse.wst.server.coretmp0wtpwebappsjspupload下。
問題二:可不可以提供jspSmartUpload.jar的生成文件名的代碼模板?
答案:可以復制以下代碼,進行部分修改即可。
1 package info.haowei.util;
2
3 import java.text.SimpleDateFormat;
4 import java.util.Date;
5 import java.util.Random;
6
7 public class IPTimeStamp {
8
9
10 private SimpleDateFormat sdf = null;
11 private String ip = null;
12
13
14 public IPTimeStamp(String ip) {
15 super();
16
17 this.ip = ip;
18 }
19
20
21 public IPTimeStamp() {
22 super();
23 }
24
25
26 public String getIPTimeRand(){
27 StringBuffer buf = new StringBuffer();
28 if(this.ip != null){
29 String s[] = this.ip.split(".");//根據ip以點分割將IP中的數字提取
30 for(int i = 0 ; i < s.length; i++){
31 buf.append(this.addZero(s[i], 3));//不夠三位數的補零
32 }
33 }
34 buf.append(this.getTimeStamp());
35 Random r = new Random();//再在結尾加上三個隨機數
36 for(int i = 0 ; i < 3 ; i++ ){
37 buf.append(r.nextInt(10));
38 }
39 return buf.toString();
40 }
41
42 private String addZero(String str, int len){
43
44 StringBuffer s = new StringBuffer();
45 s.append(str);
46 while(s.length()<len){
47 s.insert(0, 0);
48 }
49
50 return s.toString();
51 }
52
53
54 private String getTimeStamp(){//獲取時間戳
55 this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
56 return this.sdf.format(new Date());
57 }
58
59 public String getDate(){
60 this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
61 return this.sdf.format(new Date());
62 }
63 }