圖片等文件上傳不同於單純的數字,文件在計算機中以二進制的形式存在,文件的上傳要用到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中的創建如下圖所示: