0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

uni-app圖片上傳實戰(zhàn)

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-10 22:45 ? 次閱讀

uni.uploadFile()
將本地資源上傳到開發(fā)者服務(wù)器
客戶端發(fā)起一個post請求
content-type

multipart/form-data

通過uni.chooseImage獲取一個本地資源的臨時文件路徑后
將本地資源上傳到指定服務(wù)器

url String 是 開發(fā)者服務(wù)器 url 

files Aarry 否 需要上傳的文件列表

filePath String 是 要上傳文件資源的路徑

name String 是 文件對應(yīng)的key

header Object 否 HTTP 請求 Header, header 中不能設(shè)置 Referer 

uploadTask 對象的方法列表

onProgressUpdate callback 監(jiān)聽上傳進度變化

abort 中斷上傳任務(wù)

onProgressUpdate 返回參數(shù)說明
實戰(zhàn)頁面


	
		選擇照片
	
data:{
  percent:0,
  loading:false,
  disabled:false
 },
upload : function(){
   _self = this;
   uni.chooseImage({
    count: 1,
    sizeType: ['original', 'compressed'], //可以指定是原圖還是壓縮圖,默認(rèn)二者都有
    sourceType: ['album'], //從相冊選擇
    success: function (res) {
     const tempFilePaths = res.tempFilePaths;
     const uploadTask = uni.uploadFile({
      url : 'https://demo.hcoder.net/index.php?c=uperTest',
      filePath: tempFilePaths[0],
      name: 'file',
      formData: {
       'user': 'test'
      },
      success: function (uploadFileRes) {
       console.log(uploadFileRes.data);
      }
     });
 
     uploadTask.onProgressUpdate(function (res) {
      _self.percent = res.progress;
      console.log('上傳進度' + res.progress);
      console.log('已經(jīng)上傳的數(shù)據(jù)長度' + res.totalBytesSent);
      console.log('預(yù)期需要上傳的數(shù)據(jù)總長度' + res.totalBytesExpectedToSend);
     });
    },
    error : function(e){
     console.log(e);
    }
   });
  }
 },

php

getExeName($_FILES['file']['name']);
            if($exename != 'png' && $exename != 'jpg' && $exename != 'gif'){
                exit('不允許的擴展名');
            }
            $imageSavePath = uniqid().'.'.$exename;
            if(move_uploaded_file($_FILES['file']['tmp_name'], $imageSavePath)){
                echo $imageSavePath;
            }
        }
    }
    
    public function getExeName($fileName){
        $pathinfo      = pathinfo($fileName);
        return strtolower($pathinfo['extension']);
    }
}

uni.chooseImage(OBJECT) 從本地相冊選擇圖片或使用相機拍照
文件的臨時路徑,在應(yīng)用本次啟動期間可以正常使用,如需持久保存,需在主動調(diào)用 uni.saveFile,在應(yīng)用下次啟動時才能訪問得到。

tempFilePaths 
StringArray 圖片的本地文件路徑列表

tempFiles 
ObjectArray 圖片的本地文件列表,每一項是一個 File 對象

File 對象結(jié)構(gòu)如下

path String 本地文件路徑
size Number 本地文件大小,單位:B
uni.chooseImage({
 count: 6, // 默認(rèn)9
 sizeType: ['original', 'compressed'], // 原圖,壓縮圖
 sourceType: ['album'], // 從相冊選擇
 success: function(res) {
  console.log(JSON.stringify(res.tempFilePaths));
    }
});
uni.previewImage();

預(yù)覽圖片

current 當(dāng)前顯示圖片的鏈接

urls 需要預(yù)覽的圖片鏈接列表
uni.chooseImage({
 count: 6,
 sizeType: ['original','compressed'],
 sourceType: ['album'],
 success: function(res) {
  // 預(yù)覽圖片
    uni.previewImage({
     urls: res.tempFilePaths
    });
 }

uni.getImageInfo()
獲取圖片信息

orientation 參數(shù)說明

枚舉值 說明

up 默認(rèn)
down 180度旋轉(zhuǎn)
left 逆時針旋轉(zhuǎn)90度
right 順時針旋轉(zhuǎn)90度

up-mirrored 同up,但水平翻轉(zhuǎn)
down-mirrored 同down,但水平翻轉(zhuǎn)
left-mirrored 同left,但垂直翻轉(zhuǎn)
right-mirrored 同right,但垂直翻轉(zhuǎn)
uni.chooseImage({
    count: 1,
    sourceType: ['album'],
    success: function (res) {
        uni.getImageInfo({
            src: res.tempFilePaths[0],
            success: function (image) {
                console.log(image.width);
                console.log(image.height);
            }
        });
    }
});

uni.saveImageToPhotosAlbum(OBJECT)

保存圖片到系統(tǒng)相冊

filePath 圖片文件路徑

uni.chooseImage({
    count: 1,
    sourceType: ['camera'],
    success: function (res) {
        uni.saveImageToPhotosAlbum({
            filePath: res.tempFilePaths[0],
            success: function () {
                console.log('save success');
            }
        });
    }
});

若本號內(nèi)容有做得不到位的地方(比如:涉及版權(quán)或其他問題),請及時聯(lián)系我們進行整改即可,會在第一時間進行處理。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11182

    瀏覽量

    208549
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3740

    瀏覽量

    64187
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4760

    瀏覽量

    84315
  • NODE.JS
    +關(guān)注

    關(guān)注

    1

    文章

    46

    瀏覽量

    32740
收藏 人收藏

    評論

    相關(guān)推薦

    #硬聲創(chuàng)作季 uni-app項目實戰(zhàn):04-uni-ui組件-01

    前端vue
    Mr_haohao
    發(fā)布于 :2022年10月03日 17:52:13

    #硬聲創(chuàng)作季 uni-app項目實戰(zhàn):04-uni-ui組件-02

    前端vue
    Mr_haohao
    發(fā)布于 :2022年10月03日 17:52:54

    #硬聲創(chuàng)作季 uni-app項目實戰(zhàn):04-uni-ui組件-03

    前端vue
    Mr_haohao
    發(fā)布于 :2022年10月03日 17:53:34

    #硬聲創(chuàng)作季 uni-app項目實戰(zhàn):05-uni-ui組件-01

    前端vue
    Mr_haohao
    發(fā)布于 :2022年10月03日 17:54:12

    #硬聲創(chuàng)作季 uni-app項目實戰(zhàn):05-uni-ui組件-02

    前端vue
    Mr_haohao
    發(fā)布于 :2022年10月03日 17:54:52

    #硬聲創(chuàng)作季 uni-app項目實戰(zhàn):05-uni-ui組件-03

    編程語言
    Mr_haohao
    發(fā)布于 :2022年10月03日 17:55:28

    [求助]急,怎樣上傳圖片

    請教版主,怎樣上傳圖片,急。謝謝
    發(fā)表于 12-04 19:28

    發(fā)帖說明一下 如何上傳圖片

    `鑒于有發(fā)燒友說不知道如何上傳圖片一事,今發(fā)帖說明一下 ,如何上傳圖片操作步驟如下1、點擊紅色區(qū)域的【圖片】選框 2、點擊【
    發(fā)表于 04-29 10:15

    如何在網(wǎng)站上上傳圖片?

    如何在網(wǎng)站上上傳圖片
    發(fā)表于 04-26 07:13

    struts實現(xiàn)多圖片上傳

    () {   }  public static Integer pictureSize = 10*1024*1024;   //單位為byte   上傳
    發(fā)表于 12-27 17:28 ?8次下載

    DCloud崔紅保:uni-app和HBuilder背后的男人

    MUI,國內(nèi)?個接近原?App體驗的?性能前端庫,github star數(shù)過萬;流應(yīng)?,國內(nèi)?程序應(yīng)用形態(tài)的最早原型;HBuilder,擁有數(shù)百萬前端開...
    的頭像 發(fā)表于 12-08 23:33 ?957次閱讀

    uni-app事件以及事件綁定

    事件修飾符stop的使用會阻止冒泡,但是同時綁定了一個非冒泡的事件,會導(dǎo)致該元素上的catchEventName失效!
    的頭像 發(fā)表于 12-10 22:45 ?952次閱讀

    HarmonyOS應(yīng)用開發(fā)—圖片文件上傳錯誤交流

    在開發(fā)過程中,遇到一個上傳文件時的錯誤,特地在此記錄一下。 相關(guān)代碼: /** 圖片上傳* */public static void sendMultipart(String urlAddress
    的頭像 發(fā)表于 03-25 10:27 ?1513次閱讀

    MarkDown文件插入圖片上傳GitHub

    MarkDown文件插入圖片上傳GitHub
    的頭像 發(fā)表于 01-12 17:02 ?982次閱讀

    知名開源前端框架uni-app包含熱更新代碼,谷歌“封殺”

    近日,程序員發(fā)帖稱自己用開源框架 uni-app 開發(fā)的 App 被 Google Play 下架,原因是 uni-app 自帶的 SDK 包含違反 Google Play 政策的內(nèi)容 —— 包括廣告代碼,以及下載第三方
    的頭像 發(fā)表于 06-27 16:30 ?1776次閱讀
    知名開源前端框架<b class='flag-5'>uni-app</b>包含熱更新代碼,谷歌“封殺”