From e1bfde822bff796b5d358ea6152102a107190835 Mon Sep 17 00:00:00 2001 From: johnson Date: Wed, 18 Apr 2018 16:58:45 +0800 Subject: [PATCH] example(customRequest): add example for customRequest feat with 'axios'; ignore package-lock.json; --- .gitignore | 1 + examples/customRequest.html | 1 + examples/customRequest.js | 83 +++++++++++++++++++++++++++++++++++++ package.json | 1 + 4 files changed, 86 insertions(+) create mode 100644 examples/customRequest.html create mode 100644 examples/customRequest.js diff --git a/.gitignore b/.gitignore index 6ac12083..7b570816 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ lib coverage yarn.lock es +package-lock.json diff --git a/examples/customRequest.html b/examples/customRequest.html new file mode 100644 index 00000000..48cdce85 --- /dev/null +++ b/examples/customRequest.html @@ -0,0 +1 @@ +placeholder diff --git a/examples/customRequest.js b/examples/customRequest.js new file mode 100644 index 00000000..9e9f8d2f --- /dev/null +++ b/examples/customRequest.js @@ -0,0 +1,83 @@ +/* eslint no-console:0 */ +import React from 'react'; +import ReactDOM from 'react-dom'; +import Upload from 'rc-upload'; +import axios from 'axios'; + +const uploadProps = { + action: '/upload.do', + multiple: false, + data: { a: 1, b: 2 }, + headers: { + Authorization: '$prefix $token', + }, + onStart(file) { + console.log('onStart', file, file.name); + }, + onSuccess(ret, file) { + console.log('onSuccess', ret, file.name); + }, + onError(err) { + console.log('onError', err); + }, + onProgress({ percent }, file) { + console.log('onProgress', `${percent}%`, file.name); + }, + customRequest({ + action, + data, + file, + filename, + headers, + onError, + onProgress, + onSuccess, + withCredentials, + }) { + // EXAMPLE: post form-data with 'axios' + const formData = new FormData(); + if (data) { + Object.keys(data).map(key => { + formData.append(key, data[key]); + }); + } + formData.append(filename, file); + + axios + .post(action, formData, { + withCredentials, + headers, + onUploadProgress: ({ total, loaded }) => { + onProgress({ percent: Math.round(loaded / total * 100).toFixed(2) }, file); + }, + }) + .then(({ data: response }) => { + onSuccess(response, file); + }) + .catch(onError); + + return { + abort() { + console.log('upload progress is aborted.'); + }, + }; + }, +}; + +const Test = () => { + return ( +
+
+ + + +
+
+ ); +}; + +ReactDOM.render(, document.getElementById('__react-content')); diff --git a/package.json b/package.json index 2f0d0902..87ba2ec9 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "coverage": "jest --coverage && cat ./coverage/lcov.info | coveralls" }, "devDependencies": { + "axios": "^0.18.0", "co-busboy": "^1.3.0", "coveralls": "^2.13.1", "expect.js": "0.3.x",