### 图片上传
1.前端角度
a.将图片发给后端 ajax
1.前端获取图片信息 文件域
2.将文件信息 存到formdata
3.调用后端写的api接口发送数据
b.接受返回的数据
前端页面显示图片
Document
2.后端角度
目的:将前端上传的图片
1.图片本身应该能被访问(静态资源目录)
a.获取图片上传的数据 (multer().singer('hehe') req.file)
b.将数据存到文件里面去 fs.writeFile('路径',req.file.buffer)
文件名不重复(时间戳+随机水)
后缀名和源文件保持一致(minitype)
上传的文件大小不能超过一定尺寸(size)
写入路径用绝对路径 path.join(__dirname,'./www')
2.路径信息存到数据里去
const express = require('express')let app = express()const multer = require('multer')const fs = require('fs')const path = require('path')//single是单图片上传,多图片上传 array ,single里面就是上传图片的key值 //和图片相关的是req.file app.use('/public',express.static(path.join(__dirname,'./www')))app.post('/aa',multer().single('img'),(req,res)=>{ let {buffer,mimetype} = req.file; let fileName = (new Date()).getTime() + parseInt(Math.random()*3435) + parseInt(Math.random()*6575); let fileType = mimetype.split('/')[1]; let filePath = path.join(__dirname,'/www/images') let apath = `http://localhost:5500/public/images/${fileName}.${fileType}` fs.writeFile(`./www/images/${fileName}.${fileType}`,buffer,(data)=>{ if(data){ res.send({err:0,msg:"上传失败"}) }else{ res.send({err:1,msg:"上传成功",imgPath:apath}) } })})app.listen('5500',()=>{ console.log('start')})
3.注意事项
1.数据类型 formdata
2.方法 post
3.正常ajaxpost的数据格式 表单 json