1.本地上傳
在許多Web站點應用中都需要為用戶提供通過瀏覽器上傳文檔資料的功能,例如,上傳個人相片、共享資料等。在DRP中,就有這個一個功能,需要將對應的物料圖片上傳并顯示。對于上傳功能,其實在瀏覽器端提供了很好的支持,只需在Web服務器端獲取瀏覽器上傳文件并保存。首先要引入兩個jar包,commons-fileupload.jar包,另一個是commons-io.jar包。瀏覽器端如何支持:采用post提交;更改form的enctype屬性為:enctype="multipart/form-data"。
總結:FileUpload組件將頁面提交的所有元素(普通form表單域,如input和文件域file)都看作一樣的FileItem,這樣上傳頁面提交的 request請求也就是一個FileItem的有序組合FileUpload組件可以解析該request,并返回一個一個的FileItem。而對 每一個FileItem,FileUpload組件可以判斷出它是普通form表單域還是文件file域,從而根據不同的類型,采取不同的操作--如果是表單域,就讀出其值,如果是文件域,就保存文件到服務器硬盤上或者內存中。
2.ftp服務器上傳
Commons net包中的ftp工具類能夠幫助我們輕松實現Ftp方式的文件上傳/下載。其中最重要的一個類就是FTPClient類,這個提供了許多FTP操作相關的方法,比如鏈接,登錄,上傳,下載,和注銷。FTP 操作的過程一般為連接服務器,登錄,進行文件上傳/下載,文件(目錄)的添加刪除修改等操作。
總結:FTPClient類中也提供了一些文件/文件夾操作的方法。通過commos net提供的方法,可以方便的實現斷點傳輸等功能。我還可以同個retrieveFileStream方法來獲取遠程服務器中指定文件的一個輸入流來供我們手動的進行讀操作,也可以使用appendFileStream方法來獲取要上傳到遠程服務器中文件對應的輸出流對象,然后我們就可以手動的從本地文件中讀取數據然后寫入到遠程服務中,比如上傳的進度。
相對于cpu,輸入outputsteam,輸出inputsteam。