Google到了Apache 的 commons-fileupload-1.2.jar 上傳組件, 研究了API然后結(jié)合Hibernate實(shí)現(xiàn)了上傳圖片
并保存到MySQL數(shù)據(jù)庫(kù). 今天重新寫了一遍, 由于不需要保存到數(shù)據(jù)庫(kù)了, 就實(shí)現(xiàn)了保存成文件格式.
我的這個(gè)FileUpload web工程源文件下載如下 :
FileUpload.rar . 解壓到當(dāng)前文件夾后直接剪切到 Tomcat 主目錄下的 webapps
目錄下, 啟動(dòng) Tomcat 后在瀏覽器輸入 http://localhost:8080/FileUpload/upload.html 查看演示.
我是用Eclipse 開發(fā). 首先, 下載兩個(gè)開發(fā)包: commons-fileupload 和 commons-io(這個(gè)在應(yīng)用commons-fileupload時(shí)會(huì)用到).
這兩個(gè)開發(fā)包(jar文件) 在我前面提供的FileUpload 工程下的WEB-INF/lib下可以找到, 你也可以到官方下載:
到 http://commons.apache.org/downloads/download_fileupload.cgi 下載 commons-fileupload-1.2.jar
組件包 (直接下載地址: http://apache.mirror.phpchina.com/commons/fileupload/binaries/commons-fileupload-1.2-bin.zip),
到 http://commons.apache.org/downloads/download_io.cgi 下載 commons-io-1.3.2 組件包(直接下載地址:
http://apache.mirror.phpchina.com/commons/io/binaries/commons-io-1.3.2-bin.zip).
啟動(dòng)Eclipse, 新建Web Project, 取名 FileUpload. 然后在WebRoot文件夾(Web根文件夾)下新建兩個(gè)文件夾(New->Folder) :
ImagesUploaded 和 ImagesUploadTemp, 分別用來(lái)存放上傳文件和上傳時(shí)的臨時(shí)文件,稍后代碼里會(huì)用到.
在WebRoot 文件夾下新建文件upload.html, 用來(lái)提供上傳用的form. 源代碼如下:
右擊src, 新建一個(gè)Servlet: FileUploadServlet, 路徑設(shè)為src/FileUploadServlet . 保存后WebRoot/WEB-INF/web.xml 更新為:
其中,我把<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> 的歡迎文件設(shè)為了upload.html,
這樣等完成后可能直接用http://localhost:8080/FileUpload/ 來(lái)訪問upload.html. 不改的話, 可以在http://localhost:8080/FileUpload/upload.html
頁(yè)面上傳文件. 在寫FileUploadServlet 之前, 先將之前下載的commons-fileupload 和commons-io 組件包壓縮文件解壓出來(lái), 把里面的
commons-fileupload-1.2.jar (lib文件夾下) 和 commons-io-1.3.2.jar 拷到WebRoot/WEB-INF/lib 文件夾下, 以便使用它們的功能.
FileUploadServlet.java 的源代碼如下, 附有詳細(xì)注解:
保存后部署項(xiàng)目(MyEclipse下直接點(diǎn)擊Deploy J2EE...按鈕, 然后選擇Tomcat服務(wù)器). 沒有MyEclipse的話, 把WebRoot 拷到
Tomcat 主目錄下的webapps 目錄下, 并重命名為 FileUpload 然后啟動(dòng)Tomcat. (或直接下載我在文章開始提供的工程打包rar文件).
最后打開瀏覽器, 輸入url:
http://localhost:8080/FileUpload/upload.html .