鍍金池/ 問答/HTML/ react 上傳圖片到 七牛

react 上傳圖片到 七牛

react 如何上傳圖片到 七牛,小菜 求一個 demo

回答
編輯回答
墨染殤

<script src="/js/plupload.full.min.js"></script>
<script src="https://cdn.staticfile.org/qi...;></script>
componentDidMount(){

this.initQiniu();

}

initQiniu(){

var _this = this;
var uploader = Qiniu.uploader({
    runtimes: 'html5,flash,html4',      // 上傳模式,依次退化
    browse_button: 'pickfiles',         // 上傳選擇的點選按鈕,**必需**
    uptoken_url: 'url to fetch token',         // Ajax 請求 uptoken 的 Url,**強烈建議設(shè)置**(服務(wù)端提供)
    get_new_uptoken: false,             // 設(shè)置上傳文件的時候是否每次都重新獲取新的 uptoken
    unique_names: true,              // 默認 false,key 為文件名。若開啟該選項,JS-SDK 會為每個文件自動生成key(文件名)
    domain: 'xxx',     // bucket 域名,下載資源時用到,**必需**
    container: 'container',             // 上傳區(qū)域 DOM ID,默認是 browser_button 的父元素,
    max_file_size: '100mb',             // 最大文件體積限制
    flash_swf_url: 'path/of/plupload/Moxie.swf',  //引入 flash,相對路徑
    max_retries: 3,                     // 上傳失敗最大重試次數(shù)
    dragdrop: true,                     // 開啟可拖曳上傳
    drop_element: 'container',          // 拖曳上傳區(qū)域元素的 ID,拖曳文件或文件夾后可觸發(fā)上傳
    chunk_size: '4mb',                  // 分塊上傳時,每塊的體積
    auto_start: true,                   // 選擇文件后自動上傳,若關(guān)閉需要自己綁定事件觸發(fā)上傳,
    init: {
        'FilesAdded': (up, files) => {
            plupload.each(files, function(file) {
                // 文件添加進隊列后,處理相關(guān)的事情
            });
        },
        'BeforeUpload': (up, file) => {
          // 每個文件上傳前,處理相關(guān)的事情
        },
        'UploadProgress': (up, file) => {
          // 每個文件上傳時,處理相關(guān)的事情
          this.setState({
            isUploading: true,
          });
        },
        'FileUploaded': (up, file, info) => {
          const domain = window.domain;
          const res = JSON.parse(info);
          const sourceLink = domain + res.key; //獲取上傳成功后的文件的Url
          this.setState({
            fileUrl: sourceLink,
            isUploading: false
          });
        },
        'Error': (up, err, errTip) => {
               //上傳出錯時,處理相關(guān)的事情
        },
        'UploadComplete': () => {
               //隊列文件處理完畢后,處理相關(guān)的事情
        },
    }
});

}

render(){

return(
            <div id="container">
              <div id="pickfiles">上傳</div>
            </div>
)

}

2017年5月10日 12:30
編輯回答