圖片等檔案上傳不同於單純的數字,檔案在電腦中以二進位的形式存在,檔案的上傳要用到Smartupload組件。我們一起學習一下如何利用Smartupload組件上傳檔案。
Smartupload簡介
Smartupload是由www.jspsmart.com網站開發的一套上傳組件包,可以方便的實現檔案的上傳及下載功能,Smartupload組件使用很簡單,可以實現上傳檔案類型的限制、也可以輕易的取得上傳檔案的名稱,尾碼、大小等。
Smartupload本身是一個系統提供的jar包(和資料庫操作時匯入包是一個原理),使用者直接將此包放到classpath下,也可以直接拷貝到Tomcat_homelib目錄之中。
注意: 檔案的上傳有很多中,Smartupload只是其中的一種,但是提供這個組件的www.jspsmart.com網站已經關閉了,但是直到今天Smartupload因為它的好用一直被廣泛應用到現在。
執行個體來講解Smartupload組件上傳檔案的應用
這個執行個體將把我案頭上的一張名字為dahai.jpg的圖片上傳到檔案夾upload中。
使用此組件可以完成上傳,在上傳的時候有一點需要注意的是,必須選擇好要上傳的檔案是哪一個,這個選擇肯定是由HTML中的表單來完成。
由於要上傳檔案了,則表單必須進行封裝,因為傳遞的不再是普通的文本資料,表單的封裝通過enctype來完成。
smart_01.html <html> <head> <title>WEB開發</title> </head> <body> <form action="smart_01.jsp" method="post" enctype="multipart/form-data"> <!--封裝表單--> 請選擇要上傳的檔案:<input type="file" name="pic"> <input type="submit" value="上傳"> </form> </body> </html>
這兒要注意的是:
1. 由於考慮到上傳的檔案一般都比較大,所以method要用post,而不能用get,因為get受地址欄長度的限制。
2.enctype="multipart/form-data"表示將按照二進位的形式提交,因為圖片等檔案都不是單純的數字了,而是二進位形式的檔案。
現在既然表單已經完成了,則此時就可以通過Smartupload完成上傳了。在上傳之前先做好如下幾步:
1. 建立一個upload的檔案夾來盛放上傳的東西(圖片dahai.jpg)。這個檔案夾在MyEclipse中的建立如下圖所示: