node上傳文件,上傳圖片(base64方法),服務端代碼


tips:調用方法時,請try...catch...

 1.multiparty上傳文件


1
function uploadfile(request) { 2 return new Promise(function(resolve, reject){
var multiparty=require('multiparty'); //引入依賴
3 var form = new multiparty.Form(); 4 //設置編碼 5 form.encoding = 'utf-8'; 6 //設置文件存儲路徑 7 form.uploadDir = "static/files/"; 8 //設置單文件大小限制 9 form.maxFilesSize = 20 * 1024 * 1024; 10 //form.maxFields = 1000; 設置所有文件的大小總和 11 //生成臨時文件 12 form.parse(request, function(err, fields, files) { 13 if (err){ 14 console.log(err); 15 reject({success:false}) 16 } else { 17 console.log(files); //文件對象
console.log(fields); //附加字段參數
18 if (!files||!files.file||files.file.length==0) { 19 reject({success:false}); 20 } 21 resolve({success:true,path:files.file[0].path}) 22 } 23 }) 24 }) 25 }

 

2.base64上傳圖片

 

function uploadfilebase64(request) {
    return new Promise(function(resolve, reject){
let fs =require('fs')
let uuidV1=require('uuid/v1') let imgData
=request.body.imgData //前端以application/json形式傳遞 let base64Data = imgData.replace(/^data:image\/png;base64,/,""); let dataBuffer = new Buffer(base64Data, 'base64'); let uuid = uuidV1(); let filePath = "static/files/"+uuid+".png";//定義文件路徑及名稱,無論是jpg還是png的都可以保存成png fs.writeFile(filePath, dataBuffer, function(err) { if(err){ console.log(err); reject({success:false}) }else{ resolve({success:true,path:filePath}) } }); }) }

 

以上若有問題歡迎指正......

 

------------恢復內容結束------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM