圖片 音頻 視頻存儲在服務器,數據庫中僅僅存放的是這些文件的地址而已。
文件上傳處理,要使用formdiable插件
- Nodejs在處理客戶端以post方式提交的數據時,比較複雜,要寫兩個監聽,並且要處理上傳的圖片,文件也比較困難
- 常用第三方模塊包formdiable來處理客戶端以post提交的表單、文件、圖片等
如何使用呢? - 使用命令 npm install formidable安裝
注意事項:
-
表單提交的過程中涉及文件或圖片上傳,則一定要設置表單頭,即在form標籤上加上固定寫法的屬性爲enctype=”multipart/form-data”,否則文件或圖片會上傳失敗
-
,當中的name屬性一定要賦值,詳情見文檔:https://github.com/node-formidable/node-formidable
步驟: -
安裝 執行命令 npm install formidable –save
-
引入formidable
-
不再使用這種方式了
而是使用formidable方式了,具體的操作步驟可以參考文檔 -
在項目中新建文件夾dir
-
app.js中使用formidable
-
重啓服務器,進入localhost:2000,填寫表單,選擇文件,提交文件
-
服務器控臺輸出:文本信息都可以,但是文件信息不可以,是因爲我們需要進行一些設置
-
設置表單頭,默認是:application/x-www-form-urlencoded
-
爲,當中的name屬性賦值
-
Jquery提交時不要再使用序列化,因爲插件中已經做了;另外不要讓jquery將數據轉爲字符串,以默認的對象的形式傳遞過去
-
重啓服務器;數據讀取成功
-
但是這種方式很不友好,我們做如下改變:
1.1 刪除action提交地址
1.2 修改input提交方式爲submit
1.3 修改使用普通form提交方式
1.4 App.js中指定文件的後綴名
1.5 重新運行服務器,成功
2 重新使用按鈕提交
完整版,標紅的爲注意事項