Security News
RubyGems.org Adds New Maintainer Role
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
rc-upload
Advanced tools
The rc-upload npm package is a React component for uploading files. It allows users to upload files via drag and drop, or by using a file input. It supports multiple file uploads, progress feedback, and custom upload triggers.
File Upload
This feature allows users to upload files to a specified server endpoint. The 'action' property defines the URL to which the files will be uploaded. The 'onChange' callback provides file status updates.
import Upload from 'rc-upload';
const props = {
action: '//jsonplaceholder.typicode.com/posts/',
onChange({ file, fileList }) {
if (file.status !== 'uploading') {
console.log(file, fileList);
}
},
defaultFileList: [],
};
<Upload {...props}>
<button>Click to Upload</button>
</Upload>
Drag and Drop
This feature enables drag-and-drop file uploads. The 'type' property is set to 'drag' to enable this functionality. The 'accept' property can be used to restrict the file types that can be uploaded.
import Upload from 'rc-upload';
const props = {
action: '//jsonplaceholder.typicode.com/posts/',
type: 'drag',
accept: '.png',
beforeUpload(file) {
// Perform file validation or other operations before upload
return true;
},
onDrop(e) {
console.log('Dropped files', e.dataTransfer.files);
}
};
<Upload {...props}>
<p>Drag files here to upload</p>
</Upload>
Progress Feedback
This feature provides feedback on the progress of the file upload. The 'onProgress' callback is called during the upload process and provides information about the current progress.
import Upload from 'rc-upload';
const props = {
action: '//jsonplaceholder.typicode.com/posts/',
onProgress(step, file) {
console.log('Upload progress:', step.percent, 'File:', file.name);
}
};
<Upload {...props}>
<button>Click to Upload</button>
</Upload>
react-dropzone is a popular React library for drag-and-drop file uploads with image previews. It is similar to rc-upload but also provides a dropzone UI component and more extensive customization options.
react-filepond is a React wrapper for FilePond, a flexible and fun JavaScript file upload library. It offers a modern interface with image editing capabilities, which rc-upload does not provide out of the box.
uppy is a sleek, modular file uploader that integrates seamlessly with React. It supports drag-and-drop, remote file fetching, and webcam capture. Uppy provides a rich set of features and plugins, making it more feature-rich compared to rc-upload.
React Upload
npm install
npm start
http://localhost:8020/examples/
online example: http://react-component.github.io/upload/examples/simple.html
var Upload = require('rc-upload');
var React = require('react');
React.render(<Upload />, container);
name | type | default | description |
---|---|---|---|
name | string | file | file param post to server |
style | object | {} | root component inline style |
className | string | - | root component className |
disabled | boolean | false | whether disabled |
component | "div" | "span" | "span" |
supportServerRender | boolean | false | whether to support server render |
onReady | function | only call when supportServerRender is true, upload is rendered completely | |
action | string | function(file): string | Promise<string> | form action url | |
directory | boolean | false | support upload whole directory |
data | object/function(file) | other data object to post or a function which returns a data object | |
headers | object | {} | http headers to post, available in modern browsers |
accept | string | input accept attribute | |
multiple | boolean | false | only support ie10+ |
onStart | function | start upload file | |
onError | function | error callback | |
onSuccess | function | success callback | |
onProgress | function | progress callback, only for modern browsers | |
beforeUpload | function | null | before upload check, return false or a rejected Promise will stop upload, only for modern browsers |
customRequest | function | null | provide an override for the default xhr behavior for additional customization |
withCredentials | boolean | false | ajax upload with cookie send |
openFileDialogOnClick | boolean | true |
err
: request error messageresponse
: request response, not support on iframeUploadfile
: upload fileresult
: response bodyfile
: upload filexhr
: xhr header, only for modern browsers which support AJAX upload. since
2.4.0Allows for advanced customization by overriding default behavior in AjaxUploader. Provide your own XMLHttpRequest calls to interface with custom backend processes or interact with AWS S3 service through the aws-sdk-js package.
customRequest callback is passed an object with:
onProgress: (event: { percent: number }): void
onError: (event: Error, body?: Object): void
onSuccess: (body: Object): void
data: Object
filename: String
file: File
withCredentials: Boolean
action: String
headers: Object
abort(file?: File) => void: abort the uploading file
In iframe uploader way, the content-type of response should be text/plain
or text/html
. See more about
Content-Type Negotiation
What's more, in iframe mode, the response's status should always be 200 OK
, otherwise you might get an Access is denied
error in IE 8/9.
If the Page set document.domain, then server should output document.domain according to _documentDomain parameter.
var ret = '';
if (postData._documentDomain) {
ret += '<script>document.domain="'+postData._documentDomain+'";</script>';
}
this.body = ret + '{"url":"xx.jpq"}';
rc-upload is released under the MIT license.
FAQs
upload ui component for react
The npm package rc-upload receives a total of 608,915 weekly downloads. As such, rc-upload popularity was classified as popular.
We found that rc-upload demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
RubyGems.org has added a new "maintainer" role that allows for publishing new versions of gems. This new permission type is aimed at improving security for gem owners and the service overall.
Security News
Node.js will be enforcing stricter semver-major PR policies a month before major releases to enhance stability and ensure reliable release candidates.
Security News
Research
Socket's threat research team has detected five malicious npm packages targeting Roblox developers, deploying malware to steal credentials and personal data.