最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React中上傳圖片到七牛的示例代碼

 更新時(shí)間:2017年10月10日 09:08:56   作者:durban  
本篇文章主要介紹了React中上傳圖片到七牛的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

之前有寫過類似的一篇文章,有位同學(xué)突然找來解惑,發(fā)現(xiàn)自己采用了另外的一個(gè)方法,這里也分享下,希望對使用reactjs的同學(xué)有幫助。

邏輯思路是這樣子的,在componentDidMount中實(shí)現(xiàn)更新dom的操作,異步加載需要的資源文件,然后在加載完后實(shí)現(xiàn)qiniu的初始化操作。這里就不需要在webpack或者其他打包工具中去引入qiniu的包文件,導(dǎo)致打完包的文件過大了。

我這里使用了nodejs的庫scriptjs,

const $S = require('scriptjs');

可以實(shí)現(xiàn)異步的加載文件,當(dāng)然你也可以使用你認(rèn)為更好的,當(dāng)然也別忘記告訴我下。以下為代碼實(shí)現(xiàn)部分:

async componentDidMount() {

 let uploadToken = await this.getUploadToken();

 $S([
  'https://dn-kdjz.qbox.me/js/plupload/2.1.1/plupload.full.min.js',
  'https://dn-kdjz.qbox.me/js/qiniu-js-sdk/1.0.17.2/qiniu.min.js'
 ], 'uploadBundle');

 $S.ready('uploadBundle', () => {

  // 證件合影
  let options1 = {
   runtimes: 'html5,flash,html4',
   browse_button: 'photoId',
   uptoken: uploadToken,
   get_new_uptoken: false,
   domain: 'https://xxxx.xxxxxx', // bucket域名,下載資源時(shí)用到,必需
   container: 'photoIdContainer', // 上傳區(qū)域DOM ID,默認(rèn)是browser_button的父元素
   max_file_size: '100mb', // 最大文件體積限制
   flash_swf_url: '/js/plupload/2.2.1/Moxie.swf', //引入flash,相對路徑
   max_retries: 3, // 上傳失敗最大重試次數(shù)
   dragdrop: true, // 開啟可拖曳上傳
   drop_element: 'photoIdContainer', // 拖曳上傳區(qū)域元素的ID,拖曳文件或文件夾后可觸發(fā)上傳
   chunk_size: '4mb', // 分塊上傳時(shí),每塊的體積
   auto_start: true, // 選擇文件后自動上傳,若關(guān)閉需要自己綁定事件觸發(fā)上傳
   init: {
    'FilesAdded': (up, files) => {
     plupload.each(files, function(file) {
      // 文件添加進(jìn)隊(duì)列后,處理相關(guān)的事情
     });
    },
    'BeforeUpload': (up, file) => {
     // 每個(gè)文件上傳前,處理相關(guān)的事情
    },
    'UploadProgress': (up, file) => {
     // 每個(gè)文件上傳時(shí),處理相關(guān)的事情
    },
    'FileUploaded': async(up, file, info) => {
     // 查看簡單反饋
     let domain = up.getOption('domain');
     let res = JSON.parse(info);
     let sourceLink = await this.getDownloadUrl(res.key);
     this.setState({
      photoIdKey: res.key,
      photoId: sourceLink
     })
    },
    'Error': (up, err, errTip) => {
     //上傳出錯(cuò)時(shí),處理相關(guān)的事情
     console.log(err);
    },
    'UploadComplete': () => {
     //隊(duì)列文件處理完畢后,處理相關(guān)的事情
     console.log('上傳完成');
    },
    'Key': (up, file) => {
     let timestamp = parseInt((new Date().valueOf() / 1000));
     // 若想在前端對每個(gè)文件的key進(jìn)行個(gè)性化處理,可以配置該函數(shù)
     // 該配置必須要在unique_names: false,save_key: false時(shí)才生效
     let key = `idcard/${timestamp}_${file.name}`;
     return key
    }
   }
  };
  // 第一個(gè)按鈕
  const uploader1 = Qiniu.uploader(options1);
 })
}

這里有個(gè)getUploadToken方法,這個(gè)方法是根據(jù)官方文檔的策略實(shí)現(xiàn)了一個(gè)獲取上傳token的方法,此方法是通過訪問服務(wù)端的接口來獲取token。具體實(shí)現(xiàn)過程可以參考官方。如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • react component changing uncontrolled input報(bào)錯(cuò)解決

    react component changing uncontrolled in

    這篇文章主要為大家介紹了react component changing uncontrolled input報(bào)錯(cuò)解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • React父子組件傳值(組件通信)的實(shí)現(xiàn)方法

    React父子組件傳值(組件通信)的實(shí)現(xiàn)方法

    本文主要介紹了React父子組件傳值(組件通信)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • React中實(shí)現(xiàn)使用條件渲染來顯示不同的內(nèi)容

    React中實(shí)現(xiàn)使用條件渲染來顯示不同的內(nèi)容

    在React中,條件渲染是根據(jù)不同的條件選擇性地渲染組件,本文介紹了三種常見的條件渲染方式:使用if語句、使用三元運(yùn)算符和使用短路運(yùn)算符,通過這些方法,我們可以根據(jù)應(yīng)用的狀態(tài)和用戶的操作動態(tài)地顯示不同的內(nèi)容,從而提升用戶體驗(yàn)和組件的可維護(hù)性
    2025-02-02
  • React開發(fā)進(jìn)階redux saga使用原理詳解

    React開發(fā)進(jìn)階redux saga使用原理詳解

    這篇文章主要為大家介紹了React開發(fā)進(jìn)階redux saga使用原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • React 的調(diào)和算法Diffing 算法策略詳解

    React 的調(diào)和算法Diffing 算法策略詳解

    React的調(diào)和算法,主要發(fā)生在render階段,調(diào)和算法并不是一個(gè)特定的算法函數(shù),而是指在調(diào)和過程中,為提高構(gòu)建workInProcess樹的性能,以及Dom樹更新的性能,而采用的一種策略,又稱diffing算法
    2021-12-12
  • React Native從類組件到函數(shù)組件詳解

    React Native從類組件到函數(shù)組件詳解

    這篇文章主要介紹了React Native從類組件到函數(shù)組件方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • ReactNative頁面跳轉(zhuǎn)實(shí)例代碼

    ReactNative頁面跳轉(zhuǎn)實(shí)例代碼

    這篇文章主要介紹了ReactNative頁面跳轉(zhuǎn)的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • 在react項(xiàng)目中webpack使用mock數(shù)據(jù)的操作方法

    在react項(xiàng)目中webpack使用mock數(shù)據(jù)的操作方法

    這篇文章主要介紹了在react項(xiàng)目中webpack使用mock數(shù)據(jù)的操作方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 詳解react服務(wù)端渲染(同構(gòu))的方法

    詳解react服務(wù)端渲染(同構(gòu))的方法

    這篇文章主要介紹了詳解react服務(wù)端渲染(同構(gòu))的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 關(guān)于React Native報(bào)Cannot initialize a parameter of type''NSArray<id<RCTBridgeModule>>錯(cuò)誤(解決方案)

    關(guān)于React Native報(bào)Cannot initialize a parameter of type''NSArra

    這篇文章主要介紹了關(guān)于React Native報(bào)Cannot initialize a parameter of type'NSArray<id<RCTBridgeModule>>錯(cuò)誤,本文給大家分享解決方案,需要的朋友可以參考下
    2021-05-05

最新評論

辛集市| 兴和县| 霍林郭勒市| 沂南县| 若羌县| 铁岭县| 岳阳市| 丰都县| 隆德县| 桐城市| 邵东县| 富顺县| 铁岭市| 安陆市| 柞水县| 九龙县| 稻城县| 德保县| 德州市| 合肥市| 滦南县| 定日县| 邛崃市| 齐河县| 阿鲁科尔沁旗| 桃园市| 金川县| 泌阳县| 安达市| 彰化县| 定安县| 施秉县| 扬州市| 平安县| 浪卡子县| 清远市| 梅河口市| 洛南县| 定陶县| 华亭县| 岳西县|