案例 檔案上傳總結

2021-07-22 15:51:55 字數 1973 閱讀 3415

【檔案上傳的概述】

檔案上傳:

指的是將本地的檔案寫到伺服器上,例如我們將資料儲存在雲端。

檔案上傳技術:

servlet3.0、jspsmartupload、fileupload、struts2

檔案上傳的要素:

表單的提交方式必須是post。

表單中需要有檔案上傳的表單元素:這個元素必須有name屬性和值:

表單的enctype屬性的值必須是multipart/form-data.如果沒有這個就會只顯示檔名而沒有內容。

【檔案上傳原理分析】

設計檔案上傳的頁面;

進行檔案上傳的抓包分析;

沒有設定enctype屬性的時候:只能獲得檔案的名稱,而沒有檔案的內容;

設定enctype屬性為multipart/form-data:獲得檔名及檔案內容

【思路設計】

jsp部分設計

抓包分析

注意:檔案重名和目錄分離

檔案重名的解決方案:·檔案重名的**思路,**會在**實現中展現

目錄分離的原因:如果將全部的檔案或者資料夾都放在同乙個資料夾中,那麼我們在開啟這個資料夾的時候會讀取一段時間會很慢,

更別說進行讀寫操作了,所以我們要進行目錄分離分成多個資料夾

【**實現】

request.setcharacterencoding("utf-8");

//獲得part部分

part part = request.getpart("upload");

//獲得檔名

string header = part.getheader("content-disposition");

int num = header.lastindexof("filename=\"");

string filename = header.substring(num+10,header.length()-1);

//獲得檔案的內容  

inputstreaminputstream = part.getinputstream();

//獲得upload的路徑

stringpath = this.getservletcontext().getrealpath("/upload");

//獲得唯一檔名,防止出現重複檔名後,後者覆蓋前者內容的問題

stringufilename = uuidutils.getuuidfilename(filename);

//確保在伺服器中獲得唯一路徑   **********

stringrealpath =path+uploadutils.getpath(ufilename);

//生成資料夾

filefile = new file(realpath);

if(!file.exists())

//建立輸出流,將上傳的檔案上傳到web專案中的路徑中

outputstreamos = new fileoutputstream(realpath+"/"+ufilename);

//通過位元組流傳輸

byteb = new byte[1024];

intlen=0;

while((len=inputstream.read())==-1)

inputstream.close();

os.close();

PHP 檔案程式設計綜合案例 檔案上傳的實現

php檔案上傳 1 upload.php 複製 如下 ddd2 uploadprocess.php 複製 如下 接收 username post username fileintro post fileintro echo username.fileintro 獲取檔案資訊 echo print r...

檔案上傳案例

檔案上傳案例的客戶端 讀取本地檔案,上傳到伺服器,讀取伺服器回寫的資料 明確 資料來源 d ideaprojects basic code aaaa qaq qaq.jpg 目的地 伺服器 實現步驟 1 建立本地位元組輸入流 fileinputstream物件,繫結讀取的資料來源 2 建立乙個客戶端...

c 順序棧基本操作案例(檔案)

順序棧的基本操作 include include using namespace std define ok 1 define error 0 define overflow 2 define maxsize 50 儲存空間的初始分配數量 typedef int status 返回函式狀態值 typ...