国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:25:53
字體:
來源:轉載
供稿:網友

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

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

我這里使用了nodejs的庫scriptjs,

const $S = require('scriptjs');

可以實現異步的加載文件,當然你也可以使用你認為更好的,當然也別忘記告訴我下。以下為代碼實現部分:

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域名,下載資源時用到,必需   container: 'photoIdContainer', // 上傳區域DOM ID,默認是browser_button的父元素   max_file_size: '100mb', // 最大文件體積限制   flash_swf_url: '/js/plupload/2.2.1/Moxie.swf', //引入flash,相對路徑   max_retries: 3, // 上傳失敗最大重試次數   dragdrop: true, // 開啟可拖曳上傳   drop_element: 'photoIdContainer', // 拖曳上傳區域元素的ID,拖曳文件或文件夾后可觸發上傳   chunk_size: '4mb', // 分塊上傳時,每塊的體積   auto_start: true, // 選擇文件后自動上傳,若關閉需要自己綁定事件觸發上傳   init: {    'FilesAdded': (up, files) => {     plupload.each(files, function(file) {      // 文件添加進隊列后,處理相關的事情     });    },    'BeforeUpload': (up, file) => {     // 每個文件上傳前,處理相關的事情    },    'UploadProgress': (up, file) => {     // 每個文件上傳時,處理相關的事情    },    '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) => {     //上傳出錯時,處理相關的事情     console.log(err);    },    'UploadComplete': () => {     //隊列文件處理完畢后,處理相關的事情     console.log('上傳完成');    },    'Key': (up, file) => {     let timestamp = parseInt((new Date().valueOf() / 1000));     // 若想在前端對每個文件的key進行個性化處理,可以配置該函數     // 該配置必須要在unique_names: false,save_key: false時才生效     let key = `idcard/${timestamp}_${file.name}`;     return key    }   }  };  // 第一個按鈕  const uploader1 = Qiniu.uploader(options1); })}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 揭西县| 会理县| 贡觉县| 琼海市| 新竹县| 秦安县| 喀什市| 敦煌市| 鄂伦春自治旗| 宾川县| 昌邑市| 文昌市| 阿合奇县| 乳山市| 荣成市| 鹤峰县| 湘潭县| 博爱县| 光泽县| 余姚市| 页游| 临高县| 永泰县| 石泉县| 宽甸| 通州区| 龙泉市| 乐平市| 广灵县| 通河县| 莱芜市| 洪泽县| 霞浦县| 任丘市| 忻城县| 鄂伦春自治旗| 呼伦贝尔市| 稷山县| 芦溪县| 利津县| 虞城县|