const pathLib = require('path');//引入node.js下的一個path模塊的方法,主要處理文件的名字等工作,具體可看文檔
const fs = require(''fs);
var app = new express();
//前台圖片上傳訪問路徑
app.post('/upload',(req,res)=>{
if(Boolean(typeof req.files[0])){//判斷訪問該后台時是否有圖片上傳
var ext = pathLib.parse(req.files[0].originalname).ext;//獲取文件的后綴名,req.files[0].originalname為文件名,pathLib.parse(文件名).ext方法獲取文件名的后綴名;
var newPath = (req.files[0].path +ext).replace(/\\/gi,'\\\\');//將文件保存的路徑名並加上后綴,然后替換文件名中的 ‘\’ 換成 '\\',以此保存到數據庫中
var newFilename = req.body.id+'_'+req.files[0].filename;//保存圖片的新名字
if(newFilename){
fs.rename(req.files[0].path,newPath,(err)=>{//重命名,參數一:原始路徑,參數二:新路徑,參數三:回調函數
if(err){
res.status(500).send('file opration error').end();
}else{
//將保存的路徑插入到數據庫中
db.query(`INSERT INTO img_table (phone,src,date) VALUES('${req.body.id}','${newPath}','${req.body.time}')`,(err)=>{
if(err){
res.json({"code":"0","msg":"error"}).end();
}else{
//返回JSON數據,並指定圖片的樣式大小
res.json({"code":"200","msg":"success","style":'display: inline-block; height: auto; max-width:100%;'}).end();
}
});
}
});
}
}
});
return app;
我這里后台用的是node.js,框架使用的是express,一個挺老的框架,關鍵是如何處理上傳后的圖片操作。
