nodeJs(express)文件上傳配置

用node作爲服務器端,在需要上傳文件到後臺時,後臺需要相應配置
簡單配置如下:
1、安裝multer依賴:npm install multer --save
渣渣前臺的渣渣後臺技術有限,不是自己配置的node服務器,使用的是webstorm自帶的創建express項目,
普通配置都齊全了,只需要新增
2、配置:
app.js:
引入multer
var multer = require(“multer”);
再創建一個multerObject設置保存參數
// static 爲自定義保存的路徑,沒有會自動創建文件夾
var multerObj = multer({ dest: “./static” });
文件上傳配置
在一定位置(之前試過在靠前的位置,但是不行,後來放在app.use(express.static(path.join(__dirname, ‘public’)));之後)寫入
// 有single、array()、fields(),不過我個人覺得用any()方便
(更多更高級的配置請自行百度吧…我也是百度來的,只是短時間內兩次使用竟然都不知道怎麼配置甚至不知道要配置,只好找個地方寫下來了)
app.use(multerObj.any());
node圖片上傳配置
這裏加入上面一行app.use(express.static(path.join(__dirname, ‘static’)));
是爲了能夠在本地瀏覽器輸入網址直接訪問本靜態文件夾(如,我的服務器配置端口是3000,加入現在我有一張圖片在static或public中,在服務器開啓的情況下,直接在瀏覽器中輸入http://localhost:3000/圖片名就可以訪問該張圖片了)

配置完成,之後有圖片上傳上來就會直接添加到你設置的默認文件路徑,不過需要注意的是:
保存的文件沒有後綴名,也就是損壞的文件,需要手動更改,其實保存的路徑是服務端收到的req.files[0].path,可以看到,根本就沒有後綴名,只是隨機生成了一個名字,解決方法:
利用fs對文件進行讀寫:

1、在用到文件上傳的文件裏引用fs模塊,注意不能寫進全局,不起作用的:
var fs = require(“fs”);
node文件讀寫
2、在有文件操作的地方,用fs.rename(oldPath, newPath, callback)
用新的文件名覆蓋舊文件就行了,oldPath取值可以直接爲req.files[0].path,新文件newPath我一般是分離出文件名部分,取出文件的後綴名,然後再用文件名+當前時間+“.”+後綴名就生成文件名了,也不擔心會重名了
好了,一個文件上傳的配置囉囉嗦嗦的,不知道以後我能看懂不。。不過沒關係,有關鍵詞再加百度就可以完成了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章