node+express+vue上傳圖片

我的服務器搭建的差很少了,開始作一些基礎功能,先從上傳圖片開始吧。

前端用的vue。
//html
 <div>
<input type="file" name="file" accept=".jpg, .jpeg, .png" @change="uploadAvatar">
</div>
//js
uploadAvatar(avatar) {
var url = "http://localhost:3000";
console.log(avatar.target.files[0])
let file = avatar.target.files[0]
let data = new FormData();
data.append("file", file, file.name); 
data.append('data', 112)
console.log(data.get('file'))
 
this.$http.post(url + '/product/zhutu', data).then(function(data) {
console.log(data)
}, function(response) {
console.log(response)
})
}

主要是後臺,須要插件有,1.multiparty(傳送圖片)。2.images(圖片處理)。3.uuidV1(生成惟一名字)

//處理圖片
router.post('/zhutu', function(req, res, next) {
console.log('tupian')
var form = new multiparty.Form();
form.parse(req, function(err, fields, files) {
console.log(files.file[0])
// //找到上傳的圖片上傳以前的名字
var orgFilename = files.file[0].originalFilename;
console.log(orgFilename)
// //切割orgFilename 找到圖片的擴展名 以證實圖片是什麼格式的
// //切割後是一個數組,找到數組最後一個
var formate = orgFilename.split(".");
// //拼接新的圖片名稱
var fileName = uuidV1() + "." + formate[formate.length - 1];
//      
images(files.file[0].path) //Load image from file 
.size(1920, 1276)
.save("public/images/detail/" + fileName, {
quality: 1000
});
//返回前臺存儲地址
var src = "/images/detail/" + fileName;
 
res.json({
status: true,
msg: src
})
});
});
相關文章
相關標籤/搜索