formidable
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| let form = new formidable.IncomingForm(); form.encoding = 'utf-8'; form.keepExtensions = true; form.maxFieldsSize = 2 * 1024 * 1024; form.uploadDir = '/usr/local/workspace/xiaoniaoFile/jiemian'
form.parse(req,function(err,fileds,files){ if(err){ return console.log(err) } console.log ("files", files); let imgPath = files.img.path; console.log ("imgPath", imgPath); let imgName = imgPath.split("/"); let imgSrc = imgName[imgName.length-1]; let data = fs.readFileSync(imgPath) fs.writeFile(imgPath,data,function(err){ if(err){ console.log(err) res.send({ status:0, msg:'头图上传失败', path: imgPath, err: err, src: imgSrc?imgSrc:"" }) }else{ res.send({ status:1, msg:'头图上传成功', path: imgPath, src: `http://返回你的图片域名/${imgSrc}` })
}
}) })
|
request entity too large错误的解决
出现这个错误的解决方式在网上查有的说是从nginx入手解决
因为我本地是用nodemon监听开发,所以采用如下方式:
1 2 3 4 5 6
|
var bodyParser = require('body-parser') app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
|
体系延伸-前端上传图片
这里贴上前端进行图片上传的示例代码,可以结合起来使用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| $('#addJiemianNews').click(function(e){ e.preventDefault() var obj = new FormData(); obj.append("img",$("#readyImg").get(0).files[0]); let thisImg = $('#readyImg').get(0).files[0];
if( thisImg ){ console.log("thisImg", thisImg ); }else{ console.log(`你还没上传头图`); alert(`头图不能是空`); return false; } $.ajax({ url:host + '/addJiemianNewsImg', type:"post", data:obj, processData:false, contentType : false, cache:false, success:function(data){ $.post(host + '/addJiemianNews', { path: data.path?data.path:"", art_link: $("input[name='art_link']").val().replace(/\s+/g,''), src: data.src?data.src.replace(/\s+/g,''):"" },(data)=>{ if( data.status == 1 ){ alert( data.msg ); } $('#closeJiemianNewsModal').click(); });
} }) });
|