您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在antd組件中使用Upload實現自己上傳,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
//添加按鈕的樣式 const uploadButton = ( <div> <Icon type="plus" /> <div className="ant-upload-text">Upload</div> </div> ); <Upload //樣式 className={styles['override-ant-btn']} //陳列樣式,現在是卡片式 listType="picture-card" //再圖片上傳到頁面后執行的函數,自定義讓他不執行 beforeUpload={() => false} //數據,即圖片,是一個數組 fileList={fileList} //當點擊查看時調用(上圖的那個眼睛) onPreview={this.handlePreview} //數據改變時調用 onChange={this.handleChange} > //當不少于一張圖時,不顯示怎加圖片的按鈕。 {fileList.length >= 1 ? null : uploadButton} </Upload>
還有一個移除時調用的函數onRemove(),即點擊上圖的垃圾桶,這里沒有定義。
handlePreview = (file) => { this.setState({ previewImage: file.url || file.thumbUrl, visible: true, }); }; <Modal visible={visible} footer={null} onCancel={this.handleCancel}> <img alt="加載" style={{ width: '100%',height: '100%' }} src={previewImage} /> </Modal>
利用Modal顯示圖片。
handleChange = ({ fileList }) => { this.setState({ fileList }); };
數據改變時直接重設fileList數組的值(我這里只有一張圖可以這么做)。
最后是fileList的一些基本設置:
fileList: [{ uid: 'id', name: '標題', //目前的狀態 status: 'done', //圖片的url或者base64 url: '', type: 'image/jpeg', }],
PS:基于antd的上傳文件進度條
核心代碼
//通過前端原生XMLHttpRequest動態獲取上傳文件進度 doTransferFile = (file) => { let mySelf = this; let formData = new FormData(); let url = "http://xxx:444/upload_file.php"; let file = document.getElementById("chooseFile").files[0]; console.log(file) formData.append("file",file); // console.log(modal); // console.log(formData); // return false; /* eslint-disable */ $.ajax({ url : url, type : 'POST', enctype: 'multipart/form-data', data : formData, // 告訴jQuery不要去處理發送的數據 processData : false, // 告訴jQuery不要去設置Content-Type請求頭 contentType : false, timeout : 60000,//設置超時時間 beforeSend:function(){ console.log("現在開始上傳文件!"); notification['info']({ message: '提示', description: '現在開始上傳文件!', }); }, xhr: function(){ let myXhr = $.ajaxSettings.xhr(); // console.log(myXhr) if(myXhr.upload){ myXhr.upload.addEventListener('progress',function(e) { if (e.lengthComputable) { let percent = Math.floor((e.loaded/e.total)*100); // console.log(e.loaded) // console.log(e.total) console.log(percent) let upload = mySelf.state.upload; upload.progress.loaded = e.loaded; upload.progress.total = e.total; upload.progress.percentage = percent; mySelf.state.upload = upload; // console.log(info); mySelf.setState({ upload: upload }); } },false); myXhr.upload.addEventListener('load',function(e) { console.log('fish') },false); } return myXhr; }, success : function(res) { console.log(res) }, error : function(res) { } }); };
關于怎么在antd組件中使用Upload實現自己上傳就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。