• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      uni-app uni.uploadFile 多圖上傳 Node.js后端接收

      2021-5-20    前端達(dá)人

      uni-app 代碼

      選擇圖片代碼(uniapp 代碼示例)

      選擇圖片代碼以及文檔

      uni.chooseImage({ success: (chooseImageRes) => { const tempFilePaths = chooseImageRes.tempFilePaths; } }); 
      
      • 1
      • 2
      • 3
      • 4
      • 5

      在這里插入圖片描述

      上傳圖片以及文檔

      tempFilePaths 為選擇圖片res 里面的其中一個對象
      注意:uniapp 上傳圖片不能上傳選中的File 文件(tempFiles這個數(shù)組的東西不能夠上傳) 要上傳(tempFilePaths)讀取圖片后數(shù)組的 此數(shù)組可以用來瀏覽,上傳
      選擇圖片加上傳圖片代碼

      *多圖上傳注意 files 數(shù)組 對象不能直接傳 tempFilePaths這個數(shù)組 必須要更改

       let img = []; for (let i = 0; i < tempFilePaths.length; i++) { let obj = new Object(); obj.name = `file` + i; obj.uri = tempFilePaths[i]; img.push(obj); obj = null; } 
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

      uniapp 全部代碼

       uni.chooseImage({ count: 9, success: (res) => { //上傳文件的臨時路徑 const tempFilePaths = res.tempFilePaths; let img = []; for (let i = 0; i < tempFilePaths.length; i++) { let obj = new Object(); obj.name = `file` + i; obj.uri = tempFilePaths[i]; img.push(obj); obj = null; } const tempFilePaths = res.tempFilePaths; console.log(res); uni.uploadFile({ url:'http://192.168.88.15:8978/Mailbox/'+that.api.pudatefiles, filePath: tempFilePaths[0], files: img , name: 'file', success: (uploadFileRes) => { console.log(uploadFileRes) uni.hideLoading(); if (back.status == "0") { console.log(that.host + back.filepath[0]) that.editorCtx.insertImage({ src: that.host + back.filepath[0], alt: '圖像', success: function() {} }) } else { console.log(back.msg); } }, fail: () => { uni.hideLoading(); console.log('圖片上傳失敗,請聯(lián)系開發(fā)'); } }); } }) 
      
      • 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
      • 40
      • 41
      • 42

      在這里插入圖片描述

      Node后端

      1. npm install multer
      2. npm i express

      var express = require("express"); //Express框架 const multer = require("multer"); // multer中間件上傳圖片 接收文件post數(shù)據(jù) // 設(shè)置文件上傳的地方 let storage = multer.diskStorage({ destination: (req: any, file: any, cb: Function) => { cb(null, "./StaticResource/pudate/"); }, filename: (req: any, file: any, cb: Function) => { cb(null, Date.now() + "-" + file.originalname); }, }); let multerObj = multer({ dest: "./StaticResource/pudate/", storage }); //存放上傳的文件 app.use(multerObj.any()); // 存放所有的類型文件 //設(shè)置跨域訪問 app.all("*", (req: any, res: any, next: Function) => { res.header("Access-Control-Allow-Origin", "*"); res.header( "Access-Control-Allow-Headers", "Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild" ); res.header( "Access-Control-Allow-Headers", "content-type,SelfSummerHeader,Authorization" ); //自定義請求頭 res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By", "3.2.1"); res.header("Content-Type", "application/json;charset=UTF-8"); res.header("Content-Type", "text/xml"); if (req.method === "OPTIONS" || req.url === "/favicon.ico") { // 攔截請求 return res.send(); } next(); }); app.listen(COMPort, (err: Error) => { if (err) { console.log('啟動錯誤', err) } console.table({ 端口: COMPort, IP: systemOs.IP(), 服務(wù)地址: `http://${systemOs.IP()}:${COMPort}/Mailbox`, 靜態(tài)資源: `IP端口地址加上文件名`, 描述: `Node服務(wù)已啟動成功`, "swagger-ui": `http://${systemOs.IP()}:${COMPort}/api (ts代碼轉(zhuǎn)為js代碼可以正常使用)`, }); // 掛載自定義中間件 app.use(middleware_router.bodyData); }); router.all( "/pudatefiles", (req: { files: { path: string }[] }, res: any, next: any) => { let data: Array<string> = []; console.log(req.files); req.files?.forEach((item: any) => { let url = item?.path.replace(/\\/g, "/"); data.push(url?.replace("StaticResource", "")); }); res.sendSuccess(data, "上傳成功"); } );




      藍(lán)藍(lán)設(shè)計建立了UI設(shè)計分享群,每天會分享國內(nèi)外的一些優(yōu)秀設(shè)計,如果有興趣的話,可以進(jìn)入一起成長學(xué)習(xí),請掃碼藍(lán)小助,報下信息,藍(lán)小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務(wù)合作,也請與我們聯(lián)系。

      截屏2021-05-13 上午11.41.03.png


      文章來源:csdn    

      分享此文一切功德,皆悉回向給文章原作者及眾讀者.
      免責(zé)聲明:藍(lán)藍(lán)設(shè)計尊重原作者,文章的版權(quán)歸原作者。如涉及版權(quán)問題,請及時與我們?nèi)〉寐?lián)系,我們立即更正或刪除。

      藍(lán)藍(lán)設(shè)計www.li-bodun.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 平面設(shè)計服務(wù)


      日歷

      鏈接

      個人資料

      存檔

      主站蜘蛛池模板: 久久美女夜夜骚骚免费视频| 人妻无码一区二区在线影院| 在线欧美a| 欧美日韩中文亚洲另类春色| 国产午夜福利一区二区三区| 国产精品香蕉视频在线| 日韩精品中文字幕有码| 日本乱人伦aⅴ精品潮喷| 久久国产精品_国产精品| 国产亚洲精品第一综合| 久热这里只精品视频99| 久久国内精品一区二区三区| 亚洲熟妇久久精品| 亚洲欧美成人影院| 亚洲综合av一区二区三区| 成人国产精品日本在线观看| 亚洲无线一二三四区手机| 曰本无码不卡高清av一二| 激情综合五月| 国产黄在线观看| 久久天堂av综合色无码专区| 蜜桃精品免费久久久久影院| 10000拍拍拍18勿入免费看| 国产真实自在自线免费精品| 中文字幕无码中文字幕有码A| 人妻系列无码专区免费| 国产专区国产av| 99在线精品视频在线观看| 日韩本精品一区二区三区| 亚洲成a人片在线观看天堂无码不卡| 亚洲欧洲国产日产国码无码| 国产精品久久久久久久久kt| 精品国产成人a区在线观看| 色综合中文综合网| 国产精品日日摸夜夜添夜夜添无码| 久久久无码精品一区二区三区蜜桃| 好男人社区影视在线WWW| www.亚洲天堂| 亚洲h成年动漫在线观看网站| 日本丰滿岳乱DVD| 波多野结衣在线一区二区|