java檔案上傳程式碼及其理解
阿新 • • 發佈:2019-01-11
/** * 檔案上傳 * """ * 我對檔案上傳程式碼實現的理解 * 1. 首先我要把檔案要指定一個上傳的地方 比如:c:/file這個資料夾下 * * 2. 再次我要得到上傳檔案的檔名稱 比如 file1 那麼此時這個檔案的完整的路徑 是 c:/file/file1 * * 3. 那麼此時c:/file/file1 就指向了file1 這個檔案 那麼此時 c:/file/file1 就代表一個檔案 * * 4. 那麼我們就要操作這個檔案 讓它的內容或者說資料是前臺上傳的內容或者說資料(上傳) * * 5. 那麼在java 裡 就提供了一個方法 讓它由一個普通檔案變成了一個程式碼可以操作的檔案物件 File file = new File( c:/file/file1) * * 6. 此時 我們想在本地建立一個 c:/file/file1 這樣的檔案 那麼首先應該建立 一個 c:/file 這樣的資料夾file.getParent.mkdir() 這樣資料夾就存在了 * * * 7. 我們知道檔案在程式碼裡都是通過流的方式來傳輸 (資料通過流傳輸)那麼想讓file 這個物件能夠寫資料 就必須讓它建立一個流物件 * 我想讓file 這個物件可以別人讓往裡寫資料那麼就必須建立它的的輸出流物件(開放 讓人隨便寫) java裡這樣實現 fileOutputStream = new FileOutputStream(file); * * 8. 此時本地這個 file 物件就做好了準備等待前臺傳的 formFile(這裡假設前臺傳遞檔名稱叫formFile) 來往裡寫資料 * * 9. 與後臺相同 前臺傳的這個formFile我們也得讓它變成流這樣它才能實現寫操作 它往一個檔案裡寫資料 所以必須讓它變成輸入流 java裡這樣實現 inputStream = formFile.getInputStream(); * * 10. 此時我們拿到了 fileOutputStream (等待輸入流往裡寫資料) inputStream(輸入流能夠寫資料) * * 11 哈哈 此時 來吧 兩個流結合就把資料寫到了本地 完成了檔案的上傳 apache給了我們一個方法 IOUtils.copy(inputStream,fileOutputStream)當然 也可以用別的方法實現 * * 上述理解完全是個人的理解如果有不正確的地方歡迎大神指出