二、相關類說明篇
㈠ file類
這個類包裝了一個上傳文件的所有信息。通過它,可以得到上傳文件的文件名、文件大小、擴展名、文件數據等信息。
file類主要提供以下方法:
1、saveas作用:將文件換名另存。
原型:
public void saveas(java.lang.string destfilepathname)
或
public void saveas(java.lang.string destfilepathname, int optionsaveas)
其中,destfilepathname是另存的文件名,optionsaveas是另存的選項,該選項有三個值,分別是saveas_physical,saveas_virtual,saveas_auto。saveas_physical表明以操作系統的根目錄為文件根目錄另存文件,saveas_virtual表明以web應用程序的根目錄為文件根目錄另存文件,saveas_auto則表示讓組件決定,當web應用程序的根目錄存在另存文件的目錄時,它會選擇saveas_virtual,否則會選擇saveas_physical。
例如,saveas("/upload/sample.zip",saveas_physical)執行后若web服務器安裝在c盤,則另存的文件名實際是c:/upload/sample.zip。而saveas("/upload/sample.zip",saveas_virtual)執行后若web應用程序的根目錄是webapps/jspsmartupload,則另存的文件名實際是webapps/jspsmartupload/upload/sample.zip。saveas("/upload/sample.zip",saveas_auto)執行時若web應用程序根目錄下存在upload目錄,則其效果同saveas("/upload/sample.zip",saveas_virtual),否則同saveas("/upload/sample.zip",saveas_physical)。
建議:對于web程序的開發來說,最好使用saveas_virtual,以便移植。
2、ismissing
作用:這個方法用于判斷用戶是否選擇了文件,也即對應的表單項是否有值。選擇了文件時,它返回false。未選文件時,它返回true。
原型:public boolean ismissing()
3、getfieldname
作用:取html表單中對應于此上傳文件的表單項的名字。
原型:public string getfieldname()
4、getfilename
作用:取文件名(不含目錄信息)
原型:public string getfilename()
5、getfilepathname
作用:取文件全名(帶目錄)
原型:public string getfilepathname
6、getfileext
作用:取文件擴展名(后綴)
原型:public string getfileext()
7、getsize
作用:取文件長度(以字節計)
原型:public int getsize()
8、getbinarydata
作用:取文件數據中指定位移處的一個字節,用于檢測文件等處理。
原型:public byte getbinarydata(int index)。其中,index表示位移,其值在0到getsize()-1之間。
㈡ files類
這個類表示所有上傳文件的集合,通過它可以得到上傳文件的數目、大小等信息。有以下方法:
1、getcount
作用:取得上傳文件的數目。
原型:public int getcount()
2、getfile
作用:取得指定位移處的文件對象file(這是com.jspsmart.upload.file,不是java.io.file,注意區分)。
原型:public file getfile(int index)。其中,index為指定位移,其值在0到getcount()-1之間。
3、getsize
作用:取得上傳文件的總長度,可用于限制一次性上傳的數據量大小。
原型:public long getsize()
4、getcollection
作用:將所有上傳文件對象以collection的形式返回,以便其它應用程序引用,瀏覽上傳文件信息。
原型:public collection getcollection()
5、getenumeration
作用:將所有上傳文件對象以enumeration(枚舉)的形式返回,以便其它應用程序瀏覽上傳文件信息。
原型:public enumeration getenumeration()
㈢ request類
這個類的功能等同于jsp內置的對象request。只所以提供這個類,是因為對于文件上傳表單,通過request對象無法獲得表單項的值,必須通過jspsmartupload組件提供的request對象來獲取。該類提供如下方法:
1、getparameter
作用:獲取指定參數之值。當參數不存在時,返回值為null。
原型:public string getparameter(string name)。其中,name為參數的名字。
2、getparametervalues
作用:當一個參數可以有多個值時,用此方法來取其值。它返回的是一個字符串數組。當參數不存在時,返回值為null。
原型:public string[] getparametervalues(string name)。其中,name為參數的名字。
3、getparameternames
作用:取得request對象中所有參數的名字,用于遍歷所有參數。它返回的是一個枚舉型的對象。
原型:public enumeration getparameternames()
㈣ smartupload類這個類完成上傳下載工作。
a.上傳與下載共用的方法:
只有一個:initialize。
作用:執行上傳下載的初始化工作,必須第一個執行。
原型:有多個,主要使用下面這個:
public final void initialize(javax.servlet.jsp.pagecontext pagecontext)
其中,pagecontext為jsp頁面內置對象(頁面上下文)。
b.上傳文件使用的方法:
1、upload
作用:上傳文件數據。對于上傳操作,第一步執行initialize方法,第二步就要執行這個方法。
原型:public void upload()
2、save
作用:將全部上傳文件保存到指定目錄下,并返回保存的文件個數。
原型:public int save(string destpathname)
和public int save(string destpathname,int option)
其中,destpathname為文件保存目錄,option為保存選項,它有三個值,分別是save_physical,save_virtual和save_auto。(同file類的saveas方法的選項之值類似)save_physical指示組件將文件保存到以操作系統根目錄為文件根目錄的目錄下,save_virtual指示組件將文件保存到以web應用程序根目錄為文件根目錄的目錄下,而save_auto則表示由組件自動選擇。
注:save(destpathname)作用等同于save(destpathname,save_auto)。
3、getsize
作用:取上傳文件數據的總長度
原型:public int getsize()
4、getfiles
作用:取全部上傳文件,以files對象形式返回,可以利用files類的操作方法來獲得上傳文件的數目等信息。
原型:public files getfiles()
5、getrequest
作用:取得request對象,以便由此對象獲得上傳表單參數之值。
原型:public request getrequest()
6、setallowedfileslist
作用:設定允許上傳帶有指定擴展名的文件,當上傳過程中有文件名不允許時,組件將拋出異常。
原型:public void setallowedfileslist(string allowedfileslist)
其中,allowedfileslist為允許上傳的文件擴展名列表,各個擴展名之間以逗號分隔。如果想允許上傳那些沒有擴展名的文件,可以用兩個逗號表示。例如:setallowedfileslist("doc,txt,,")將允許上傳帶doc和txt擴展名的文件以及沒有擴展名的文件。
7、setdeniedfileslist
作用:用于限制上傳那些帶有指定擴展名的文件。若有文件擴展名被限制,則上傳時組件將拋出異常。
原型:public void setdeniedfileslist(string deniedfileslist)
其中,deniedfileslist為禁止上傳的文件擴展名列表,各個擴展名之間以逗號分隔。如果想禁止上傳那些沒有擴展名的文件,可以用兩個逗號來表示。例如:setdeniedfileslist("exe,bat,,")將禁止上傳帶exe和bat擴展名的文件以及沒有擴展名的文件。
8、setmaxfilesize
作用:設定每個文件允許上傳的最大長度。
原型:public void setmaxfilesize(long maxfilesize)
其中,maxfilesize為為每個文件允許上傳的最大長度,當文件超出此長度時,將不被上傳。
9、settotalmaxfilesize
作用:設定允許上傳的文件的總長度,用于限制一次性上傳的數據量大小。
原型:public void settotalmaxfilesize(long totalmaxfilesize)
其中,totalmaxfilesize為允許上傳的文件的總長度。
c.下載文件常用的方法
1、setcontentdisposition
作用:將數據追加到mime文件頭的content-disposition域。jspsmartupload組件會在返回下載的信息時自動填寫mime文件頭的content-disposition域,如果用戶需要添加額外信息,請用此方法。
原型:public void setcontentdisposition(string contentdisposition)
其中,contentdisposition為要添加的數據。如果contentdisposition為null,則組件將自動添加"attachment;",以表明將下載的文件作為附件,結果是ie瀏覽器將會提示另存文件,而不是自動打開這個文件(ie瀏覽器一般根據下載的文件擴展名決定執行什么操作,擴展名為doc的將用word程序打開,擴展名為pdf的將用acrobat程序打開,等等)。
2、downloadfile
作用:下載文件。
原型:共有以下三個原型可用,第一個最常用,后兩個用于特殊情況下的文件下載(如更改內容類型,更改另存的文件名)。
① public void downloadfile(string sourcefilepathname)
其中,sourcefilepathname為要下載的文件名(帶目錄的文件全名)
② public void downloadfile(string sourcefilepathname,string contenttype)
其中,sourcefilepathname為要下載的文件名(帶目錄的文件全名),contenttype為內容類型(mime格式的文件類型信息,可被瀏覽器識別)。
③ public void downloadfile(string sourcefilepathname,string contenttype,string destfilename)
其中,sourcefilepathname為要下載的文件名(帶目錄的文件全名),contenttype為內容類型(mime格式的文件類型信息,可被瀏覽器識別),destfilename為下載后默認的另存文件名。
新聞熱點
疑難解答