天天看點

vue element-ui express multer上傳檔案到伺服器

第一步是安裝好multer庫并且引入

vue element-ui express multer上傳檔案到伺服器

第二部app.js中設定傳上來檔案的存儲路徑以及檔案名

vue element-ui express multer上傳檔案到伺服器
vue element-ui express multer上傳檔案到伺服器
vue element-ui express multer上傳檔案到伺服器
vue element-ui express multer上傳檔案到伺服器

建立存儲檔案夾有就不會建立。

var createFolder = function(folder){

try{

fs.accessSync(folder);

}catch(e){

fs.mkdirSync(folder);

}

};

var uploadFolder = ‘./assets/upload/’;

createFolder(uploadFolder);

配置檔案存儲路徑

var storage = multer.diskStorage({

destination: function(req, file, cb) {

cb(null, uploadFolder) // 儲存的路徑,備注:需要自己建立

},

filename: function(req, file, cb) {

const fileFormat = (file.originalname).split(’.’) // 取字尾

cb(null, file.originalname)

} })

var upload = multer({ storage: storage })

接口

// muilter.single(‘file’), //适用于單檔案上傳

// muilter.array(‘file’,num), //适用于多檔案上傳,num為最多上傳個數,上傳檔案的數量可以小于num,

// muilter.fields(fields), //适用于混合上傳,比如A類檔案1個,B類檔案2個。官方API有詳細說明。

app.post("/upload",upload.single(‘file’), function(req, res) {

// req.file 是 前端表單name==“imageFile” 的檔案資訊(不是數組)

res.send(req.file);

console.log(req.file.path)

})

第三部前端編寫

vue element-ui express multer上傳檔案到伺服器
vue element-ui express multer上傳檔案到伺服器

const formData = new FormData()

const file = this. r e f s . u p l o a d . u p l o a d F i l e s [ 0 ] c o n s t h e a d e r C o n f i g = h e a d e r s : ′ C o n t e n t − T y p e ′ : ′ m u l t i p a r t / f o r m − d a t a ′ i f ( ! f i l e ) / / 若 未 選 擇 文 件 a l e r t ( ′ 請 選 擇 文 件 ′ ) r e t u r n f o r m D a t a . a p p e n d ( ′ f i l e ′ , f i l e . r a w ) t h i s . refs.upload.uploadFiles[0] const headerConfig = { headers: { 'Content-Type': 'multipart/form-data' }} if (!file) { // 若未選擇檔案 alert('請選擇檔案') return } formData.append('file', file.raw) this. refs.upload.uploadFiles[0]constheaderConfig=headers:′Content−Type′:′multipart/form−data′if(!file)//若未選擇檔案alert(′請選擇檔案′)returnformData.append(′file′,file.raw)this.axios.post(’/upload’, formData, headerConfig).then(res => {

this.url=’./’+res.data

這裡用的前端表格是vue element-ui寫的送出資料用的是jquery中axios,用的時候記得先配置

繼續閱讀