0.0.12 • Published 2 years ago

@wannaby/wanna-ant-uploader v0.0.12

Weekly downloads
571
License
MIT
Repository
github
Last release
2 years ago

Modified attributes:

- uploadListWrapperRender(uploadListNode: ReactElement, fileList: object[]) => React.ReactNode

Returns: custom wrapper of the whole component

fileList

List of files that have been processed

uploadListNode

ReactComponent that contains all items of uploadList rendered by itemRender

- itemRender(originNode: ReactElement, file: object, onRemove: function, fileList: object[])

Custom item of uploadList

onRemove

A function that can be executed to remove file from file list

Usage

import { Upload } from 'wanna-ant-uploader';

const App = () => (
  <>
    <Upload
        uploadListWrapperRender={(uploadListNode, fileList) => (
            <>
                Global uploader Wrapper

                {uploadListNode}
            </>
        )}
        itemRender={(originNode, file, onRemove, fileList) => (
            <>Upload list item</>
        )

       }>
        Some child content
    </Upload>
  </>
);

When To Use

Uploading is the process of publishing information (web pages, text, pictures, video, etc.) to a remote server via a web page or upload tool.

  • When you need to upload one or more files.
  • When you need to show the process of uploading.
  • When you need to upload files by dragging and dropping.

API

PropertyDescriptionTypeDefaultVersion
acceptFile types that can be accepted. See input accept Attributestring-
actionUploading URLstring | (file) => Promise-
beforeUploadHook function which will be executed before uploading. Uploading will be stopped with false or a rejected Promise returned. Warning:this function is not supported in IE9(file, fileList) => boolean | Promise-
customRequestOverride for the default xhr behavior allowing for additional customization and ability to implement your own XMLHttpRequestfunction-
dataUploading extra params or function which can return uploading extra paramsobject | (file) => object | Promise<object>-
defaultFileListDefault list of files that have been uploadedobject[]-
directorySupport upload whole directory (caniuse)booleanfalse
disabledDisable upload buttonbooleanfalse
fileListList of files that have been uploaded (controlled). Here is a common issue #2423 when using itobject[]-
headersSet request headers, valid above IE10object-
iconRenderCustom show icon(file: UploadFile, listType?: UploadListType) => ReactNode-
isImageUrlCustomize if render <img /> in thumbnail(file: UploadFile) => boolean(inside implementation)
uploadListWrapperRenderComponent wrapper(uploadListNode: ReactElement, fileList: object[])
itemRenderCustom item of uploadList(originNode: ReactElement, file: UploadFile, onRemove: function, fileList?: object[]) => React.ReactNode-4.7.0
listTypeBuilt-in stylesheets, support for three types: text, picture or picture-cardstringtext
methodThe http method of upload requeststringpost
multipleWhether to support selected multiple file. IE10+ supported. You can select multiple files with CTRL holding down while multiple is set to be truebooleanfalse
nameThe name of uploading filestringfile
openFileDialogOnClickClick open file dialogbooleantrue
previewFileCustomize preview file logic(file: File | Blob) => Promise<dataURL: string>-
progressCustom progress barProgressProps (support type="line" only){ strokeWidth: 2, showInfo: false }4.3.0
showUploadListWhether to show default upload list, could be an object to specify showPreviewIcon, showRemoveIcon, showDownloadIcon, removeIcon and downloadIcon individuallyboolean | { showPreviewIcon?: boolean, showDownloadIcon?: boolean, showRemoveIcon?: boolean, removeIcon?: ReactNode | (file: UploadFile) => ReactNode, downloadIcon?: ReactNode | (file: UploadFile) => ReactNode }truefunction: 4.7.0
transformFile  Customize transform file before requestFunction(file): string | Blob | File | Promise<string | Blob | File>-
withCredentialsThe ajax upload with cookie sentbooleanfalse
onChangeA callback function, can be executed when uploading state is changing, see onChangefunction-
onDownloadClick the method to download the file, pass the method to perform the method logic, do not pass the default jump to the new TABfunction(file): void(Jump to new TAB)
onPreviewA callback function, will be executed when file link or preview icon is clickedfunction(file)-
onRemoveA callback function, will be executed when removing file button is clicked, remove event will be prevented when return value is false or a Promise which resolve(false) or rejectfunction(file): boolean | Promise-

onChange

The function will be called when uploading is in progress, completed or failed.

When uploading state change, it returns:

{
  file: { /* ... */ },
  fileList: [ /* ... */ ],
  event: { /* ... */ },
}
  1. file File object for the current operation.

    {
       uid: 'uid',      // unique identifier, negative is recommend, to prevent interference with internal generated id
       name: 'xx.png',   // file name
       status: 'done', // options:uploading, done, error, removed. Intercepted file by beforeUpload don't have status field.
       response: '{"status": "success"}', // response from server
       linkProps: '{"download": "image"}', // additional html props of file link
       xhr: 'XMLHttpRequest{ ... }', // XMLHttpRequest Header
    }
  2. fileList current list of files

  3. event response from server, including uploading progress, supported by advanced browsers.

FAQ

How to implement upload server side?

  • You can consult jQuery-File-Upload about how to implement server side upload interface.
  • There is a mock example of express in rc-upload.

I want to display download links.

Please set property url of each item in fileList to control content of link.

How to use customRequest?

See https://github.com/react-component/upload#customrequest.