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,一个挺老的框架,关键是如何处理上传后的图片操作。
原文地址:https://www.cnblogs.com/Liqian-Front-End-Engineer/p/11965326.html
时间: 2024-10-28 17:05:53