uni-app視頻 及 圖片上傳

共兩種方法

一般情況圖片是直接上傳圖片服務(wù)器,但是在特定情況需要對(duì)視頻進(jìn)行切割,修改等操作

由于視頻和圖片上傳處理一樣,此處只介紹視頻處理
1 uniapp自帶的

### [uni.chooseVideo(OBJECT)](https://uniapp.dcloud.io/api/media/video?id=choosevideo)

方法,拍攝視頻或從手機(jī)相冊(cè)中選視頻,返回視頻的臨時(shí)文件路徑
由于某些時(shí)候需要用到原生input的文件對(duì)象---原生input拿到的視頻為blob對(duì)象,即為一種進(jìn)制流
此處把文件地址轉(zhuǎn)為文件對(duì)象
利用

uni.request()

方法拿到文件流并轉(zhuǎn)為base64

let base64 = wx.arrayBufferToBase64(ress.data); //把a(bǔ)rraybuffer轉(zhuǎn)成base64 
base64 = 'data:image/jpeg;base64,' + base64 //不加上這串字符,在頁(yè)面無(wú)法顯示的哦
// 將base64轉(zhuǎn)換為文件對(duì)象
function dataURLtoFile(dataurl, filename) {
    var arr = dataurl.split(',');
    var mime = arr[0].match(/:(.*?);/)[1];
    var bstr = atob(arr[1]);
    var n = bstr.length; 
    var u8arr = new Uint8Array(n);
    while(n--){
        u8arr[n] = bstr.charCodeAt(n);
    }
    // 轉(zhuǎn)換成file對(duì)象
    return new File([u8arr], filename, {type:mime});//FormData File
    // 轉(zhuǎn)換成成blob對(duì)象
    // return new Blob([u8arr],{type:mime});
}
    // 將圖片轉(zhuǎn)換為base64,再將base64轉(zhuǎn)換成file對(duì)象
    var file=dataURLtoFile(base64,'imgHeader')//兩個(gè)參數(shù)為base64 和文件名

構(gòu)造json傳給后端就ok了

var formData = new FormData();
formData.append('key1',value1);
formData.append('file',file);

2還有一種粗暴的方法

<INPUT v-if="type==1" type="file" accept="video/*" @change="changeFile"></INPUT>
changeFile:function(e){
    console.log(event.target.files[0]);
    var file = event.target.files[0];
    var url = URL.createObjectURL(file); 
    console.log(url);//本地路徑
    this.localVideoSrc=url;//用于展示
    this.Resources=file;//文件對(duì)象
},

ok
有問(wèn)題請(qǐng)指教~~~

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 一、簡(jiǎn)歷準(zhǔn)備 1、個(gè)人技能 (1)自定義控件、UI設(shè)計(jì)、常用動(dòng)畫(huà)特效 自定義控件 ①為什么要自定義控件? Andr...
    lucas777閱讀 5,389評(píng)論 2 54
  • 1.特性 該插件可以將簡(jiǎn)單的 轉(zhuǎn)換為高級(jí)的文件選取控件。對(duì)于不支持 JQuery 和 Javascript 的...
    Robot_Lee閱讀 5,318評(píng)論 0 1
  • 1.需要服務(wù)器進(jìn)行配置Content-Type 為gzip2.AFN框架客戶端使用下列代碼即可
    落寒z閱讀 1,630評(píng)論 0 0
  • 我們生命的最終目的不是做了什么,而是變成什么。為了這個(gè)目的,我們每天都被上帝操練,正如銀子被火熬煉一般。使我們學(xué)會(huì)...
    義勝潔閱讀 285評(píng)論 0 0
  • 很早就答應(yīng)要寫(xiě)一篇關(guān)于青海的游記,但是從8月入職以來(lái),一直都處于忙碌中,不斷地適應(yīng)新的環(huán)境,新的同事,新的...
    只愛(ài)夏天閱讀 1,203評(píng)論 0 4

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