微信小程序開(kāi)發(fā)之圖片上傳

一、準(zhǔn)備工作

1)配置uploadFile合法域名

2)在做微信小程序的圖片上傳之前我們需要先配置uploadFile的合法域名。這個(gè)可以看之前的文章服務(wù)器配置部分。

二、看小程序文檔

看小程序文檔—wx.uploadFile,看文檔主要是看小程序給的api是怎么使用的。在使用wx.uploadFile之前需要先使用wx.chooseImage(OBJECT)這個(gè)api,因?yàn)槲覀冃枰冗x擇圖片。

三、代碼實(shí)現(xiàn)

1)小程序端的實(shí)現(xiàn)

wx.chooseImage({

count:9,// 默認(rèn)9

sizeType:['original','compressed'],// 可以指定是原圖還是壓縮圖,默認(rèn)二者都有

sourceType:['album','camera'],// 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有

success:function(res){

// 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片

vartempFilePaths=res.tempFilePaths;

wx.uploadFile({

url:'https://www.hgdqdev.cn/api/upload2',

filePath:tempFilePaths[0],

name:'file',

header:{

'content-type':'multipart/form-data'

? ? ? ? ? ?},

success:function(res){

vardata=res.data

console.log(res);

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ?})

? ? ? ? ? ? ? }

})

2)服務(wù)端的實(shí)現(xiàn)

// 微信小程序 圖片上傳

varmulter=require('multer')

varupload=multer({dest:'./tmp/'})

// 圖片上傳

router.all('/api/upload2',upload.single('file'),function(req,res,next){

// 文件路徑

varfilePath='./tmp/'+req.file.filename;

// 文件類型

varfileType=req.file.mimetype;

varlastName='';

switch(fileType){

case'image/png':

lastName='.png';

break;

case'image/jpeg':

lastName='.jpg';

break;

default:

lastName='.png';

break;

}

// 構(gòu)建圖片名

varfileName=Date.now()+lastName;

console.log(req.file);

// 圖片重命名

fs.rename(filePath,fileName,(err)=>{

if(err)throwerr;

// 七牛上傳

varputPolicy=newqiniu.rs.PutPolicy(bucket+":"+fileName);

vartoken=putPolicy.token();

varextra=newqiniu.io.PutExtra();

qiniu.io.putFile(token,fileName,fileName,extra,function(err,ret){

if(!err){

// 上傳成功, 處理返回值

// ret.key 是圖片的名字

varimageSrc='http://o9059a64b.bkt.clouddn.com/'+ret.key;

res.end(JSON.stringify({status:'100',msg:'上傳成功',imageUrl:imageSrc}));

}else{

// 上傳失敗, 處理返回代碼

res.end(JSON.stringify({status:'101',msg:'上傳失敗',error:ret}));

? ? ? ? ? ? ? ? ?}

// 上傳后刪除本地圖片

fs.unlinkSync(fileName);

? ? ? ? ? ?});

? ? ? ?});

})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容