SMARTUPLOAD組件
用於文件上傳下載的組件
在項目中引入jspsmartupdaload.jar,容器的classpath
設置form表單的enctype以后,method必須為post
jspsmartupload的jar包下的類
File類提供對文件的部分操作,給文件重命名
saveAs(String newName)
isMissing() 判斷用戶是否選擇了文件
String getFiledName() 獲得上傳組件的的name屬性值
String getFileName() 獲得上傳文件的文件名稱,不含路徑,帶有擴展名
直接應用上手吧,基礎在bb中引出
首先獲得jspsmartupload.jar文件,引入到web項目中
文件的上傳
1,選擇文件,並提交
整個uploadPage.jsp文件在表單域中加入選擇文件的控件,input type="file"
通過submit按鈕進行提交
在form標簽中指定提交方式post,提交給誰處理saveFilePage.jsp,以及enctype="multipart/form-data"
2,將文件保存
新建一個saveFilePage.jsp來處理文件的保存
保存文件流程
SmartUpload su=new SmartUpload();//用於保存文件的對象
su.initialize(PageContext);//在jsp頁面中可直接選擇pageContext內置對象為參數,初始化文件傳輸環境
//在傳輸之前可以進行一些設置
//比如可以傳輸什么類型的文件 setAllowedFilesList("png,jpeg,txt");
//不能傳輸什么文件 setDeniedFilesList("docx,pptx");
//限制總文件傳輸大小 setTotalMaxFileSize(long fileSizeByte)
//限制單個文件的大小 setMaxFileSize(long allFileSizeByte)
//必須要做的事,設置charset, su.setCharset("utf-8");
su.upload();//准備傳輸
su.save("des path");//將所有上傳的文件保存到指定路徑下,並返回保存的文件數量
以上就是對文件的保存,文件保存到哪去了,是不是有疑問呢?
默認是在真正部署應用服務器中,在哪個應用下,
比如將項目部署在tomcat中,在jsp項目中運行的,而最后保存的路徑su.save("upload");
那么文件會保存在tomcat部署jsp應用下,upload文件夾中;
如果是通過eclipse,關聯的tomcat,在jsp項目中運行,最后保存路徑為su.save("upload");
那么文件會保存在本機中,eclipse的workspace下.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsp\upload\下
剛才沒有對上傳的文件進行任何操作,當然也可以通過
SmartUpload實例su.getFiles() 獲得Files類的對象
該類封裝上傳上來的所有文件
可以通過該類獲得上傳文件總數 int getCount()
獲得特定index處的File對象 File getFile(index) ##此處File是smartupload.jar中的,而不是java.io中的
獲得上傳所有文件的總大小 long getSize()
關於File類,
我們可以獲得文件的名稱, String getFileName();
以及上傳的文件組件的name屬性 String getFiledName();
是否上傳文件了 boolean isMissing();
保存文件重命名 void saveAs(newName);
#$%^&^&^%#$@!#$#%^$&%*&^$%#@%$^%&^*&(@
&^%#$@@%^$ 文件的下載 ¥#¥T#¥T#
@$%$^%&^*^&*%$&^#^*^(&^%^$@#$$@#@$T@@#
首先確定下載的文件目錄在哪??
怎么處理下載的文件
在servlet中進行處理文件下載
文件存儲的路徑:request.getServletContext().getRealPath("/")+"upload"
文件路徑:request.getServletContext().getRealPath("/")+"upload"+"/"+filename
文件的名稱當作參數傳遞過來,注意可能需要進行編碼,解碼操作
通過java.io.File 可以獲得所有可下載的文件列表
File files=new File(request.getServletContext().getRealPath("/")+"upload");
List<File> fileList=files.listFiles();
下載文件的操作:
SmartUpload su=new SmartUpload();//創建下載文件的對象
su.initialize(ServletConfig,HttpRequestServlet,HttpResponseServlet);//初始化下載環境
su.download("file name");//此處地址為絕對地址,通過存儲路徑+filename
