实现视频和图片的上传,并将相关上传后的地址保存到数据库中 @[TOC]实现视频和图片的上传个人学习笔记实现代码如下:我的文件目录结构路由routerupload.jsconstexpress=require('express')constrouter=express.Router()//导入multer和pathconstmulter=require('multer')constpath=require('path')//创建multer实例对象,通过dest属性指定文件的存放路径constuploads=multer({dest:path.join(__dirname,'../temp_upload')})constuploadHandle=require('../router_handle/upload')//上传模块router.post('/upload',uploads.array('upload',12),uploadHandle.upload)module.exports=router处理函数模块router_handleupload.jsconstfs=require('fs')constmoment=require('moment')constpath=require('path')//引入数据库constdb=require('../db/config')exports.upload=(req,res)=>{constinfo=req.bodyconstfiles=req.files//存放新的图片/视频路径varfileList=[]//视频文件格式letfileType=["avi","wmv","mpg","mpeg","mov","rm","ram","swf","flv","mp4","mp3","wma","avi","rm","rmvb","flv","mpg","mkv"]//常用的图片格式letimgType=['jpg','png','jpeg','gif','webp','bmp','tif']for(iteminfiles){varfile=files[item]//console.log(file)//得到上传图片/视频类型vartype=file.originalname.split('.')[1]//设置需要给图片/视频新的名字varttt=moment().format("YYYYMMDDHHmmss")varran=parseInt(Math.random()*89999+10000)varnewName=ttt+ranif(fileType.indexOf(type)!==-1){//选择移动视频的新路径varnewpath=path.join(process.cwd(),"/upload/video/"+newName+"."+type)//移动视频并修改视频名字fs.renameSync(file.path,newpath)}elseif(imgType.indexOf(type)!==-1){//选择移动图片的新路径varnewpath=path.join(process.cwd(),"/upload/images/"+newName+"."+type)//移动图片并修改图片名字fs.renameSync(file.path,newpath)}else{returnres.cc('上传文件格式不正确')}file.path=newNamefileList.push(newpath)}//将图片或者视频地址存储到数据库中//判断上传文件是否是视频文件if(fileType.indexOf(type)!==-1){//定义sql语句constvideoSql=`selectvideofrompatientwhereid=?`db.query(videoSql,info.id,(err,result)=>{if(err)returnres.cc(err)if(result.length!==1)returnres.cc('查询失败')//存储视频地址//定义sql语句constvInserSql=`updatepatientsetvideo=?`//p判断将存储字段是否为nullif(!result[0].video){db.query(vInserSql,JSON.stringify(fileList),(err,result)=>{if(err)returnres.cc(err)returnres.cc('视频上传成功')})}elseif(JSON.parse(result[0].video).length>0){//获取已存储的地址constsqlData=JSON.parse(result[0].video)//遍历新上传的视频for(leti=0;i{if(err)returnres.cc(err)res.send('videoinsertok')})}})}elseif(imgType.indexOf(type)!==-1){//上传图片constimgSql=`selectpicturefrompatientwhereid=?`db.query(imgSql,info.id,(err,result)=>{if(err)returnres.cc(err)if(result.length!==1)returnres.cc('查询失败')//查询成功之后//存储图片地址//定义存储sql语句constpInsertSql=`updatepatientsetpicture=?`if(!result[0].picture){db.query(pInsertSql,JSON.stringify(fileList),(err,result)=>{if(err)returnres.cc(err)returnres.cc('图片上传成功',200)})}elseif(JSON.parse(result[0].picture.length)){//数据库中图片的地址constsqlData=JSON.parse(result[0].picture)//遍历新的图片地址for(leti=0;i{if(err)returnres.cc(err)res.cc('imageupdateok',200)})}})}else{res.cc('上传文件格式不正确,请重新上传!!!')}}结果如下:数据库移动后的结果 -全文完-