UNPKG

cnd-components-mcp

Version:

An MCP service for Cnd components query | 一个减少 Cnd 组件代码生成幻觉的 MCP 服务,包含系统提示词、组件文档、API 文档、代码示例和更新日志查询

109 lines 27.3 kB
上传常用于文档、图片等文件上传的场景,用户可以通过选择或拖拽文件进行上传操作。 | 参数 | 说明 | 类型 | 默认值 | 是否必填 | 支持版本 | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | --------- | -------- | -------- | | action | 上传的地址 | string | - | | - | | shape | 上传按钮形状 | 'card' | - | | - | | accept | 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 input accept attribute | string | - | | - | | data | 上传额外传参 | | { \[key: string]: string | Blob }<br/> | ((file: UploadFile) => { \[key: string]: string | Blob }) | - | | - | | headers | 设置上传的请求头部 | {<br/> 'X-Requested-With'?: string | undefined;<br/> \[key: string]: unknown;<br/> } | - | | - | | withCredentials | 是否允许请求携带 cookie | boolean | true | | - | | beforeUpload | 可选参数,详见 [beforeUpload](#beforeUpload)<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 所有文件<br/>*options*: 参数 | (file: UploadFile, options: BeforeUploadOption) => boolean | object | unknown | func.noop | | - | | onProgress | 上传中 | (file: ObjectFile\[], e: ObjectFile) => void | func.noop | | - | | onSuccess | 可选参数,上传成功回调函数,参数为请求下响应信息以及文件<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 文件<br/>*value*: 值 | (file: ObjectFile, value?: ObjectFile\[]) => void | func.noop | | - | | onError | 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 出错的文件<br/>*value*: 当前值 | (file: ObjectFile, value: ObjectFile\[]) => void | func.noop | | - | | children | 子元素 | ReactNode | - | | - | | timeout | 设置上传超时,单位 ms | number | - | | - | | method | 上传方法 | 'post' | 'put' | 'POST' | 'PUT' | 'post' | | - | | request | 自定义上传方法<br/><br/>**签名**:<br/>**参数**:<br/>*option*: 参数<br/>**返回值**:<br/>- 返回值 | (option: object) => object | - | | - | | name | 文件名字段 | string | - | | - | | onSelect | 选择文件回调 | (uploadFiles: Array\<unknown>, value: Array\<unknown>) => void | func.noop | | - | | onDrop | 放文件 | (files: UploadFile\[]) => void | func.noop | | - | | value | 文件列表 | Array\<ObjectFile> | ObjectFile | - | | - | | defaultValue | 默认文件列表 | Array\<ObjectFile> | ObjectFile | - | | - | | listType | 上传列表的样式 | ListType | - | | - | | formatter | 数据格式化函数,配合自定义 action 使用,参数为服务器的响应数据,详见 [formatter](#formater)<br/><br/>**签名**:<br/>**参数**:<br/>*response*: 返回<br/>*file*: 文件对象 | (response: UploadResponse, file: UploadFile) => UploadResponse | - | | - | | limit | 最大文件上传个数 | number | Infinity | | - | | dragable | 可选参数,是否支持拖拽上传,`ie10+` 支持。 | boolean | - | | - | | useDataURL | 可选参数,是否本地预览 | boolean | - | | - | | disabled | 可选参数,是否禁用上传功能 | boolean | - | | - | | onChange | 上传文件改变时的状态<br/><br/>**签名**:<br/>**参数**:<br/>*value*: 所有文件<br/>*file*: 文件对象 | (value: ObjectFile\[], file: ObjectFile | ObjectFile\[]) => void | func.noop | | - | | afterSelect | 可选参数,用于校验文件,afterSelect 仅在 autoUpload=false 的时候生效,autoUpload=true 时,可以使用 beforeUpload 完全可以替代该功能。<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 文件<br/>**返回值**:<br/>- 返回 false 会阻止上传,其他则表示正常 | (file: ObjectFile) => boolean | Promise\<void> | func.noop | | - | | onRemove | 移除文件回调函数<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 文件<br/>**返回值**:<br/>- 返回 false、Promise.resolve(false)、Promise.reject() 将阻止文件删除 | (file: object) => void | func.noop | | - | | autoUpload | 自动上传 | boolean | true | | - | | progressProps | 透传给 Progress props | ProgressProps | - | | - | | isPreview | 是否为预览态 | boolean | - | | - | | renderPreview | 预览态模式下渲染的内容<br/><br/>**签名**:<br/>**参数**:<br/>*value*: 文件 | (value: ObjectFile | ObjectFile\[], props: UploadProps) => void | - | | - | | fileKeyName | 文件对象的 key name | string | - | | 1.21 | | fileNameRender | 自定义文件名渲染<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 文件<br/>**返回值**:<br/>- react node | (file: object) => ReactNode | - | | - | | actionRender | 自定义操作区域渲染<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 文件<br/>**返回值**:<br/>- react node | (file: ObjectFile) => ReactNode | - | | - | | previewOnFileName | 点击文件名时触发 onPreview | boolean | - | | 1.24 | | itemRender | 自定义成功和失败的列表渲染方式,仅在 listType 是 card/image 时生效 | (file: UploadFile, action?: { remove?: () => void }) => ReactNode | - | | - | | reUpload | 选择新文件上传并替换 | boolean | - | | - | 继承 Upload 的 API,除非特别说明 | 参数 | 说明 | 类型 | 默认值 | 是否必填 | 支持版本 | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------- | -------- | -------- | | onPreview | 点击图片回调 | (file: ObjectFile, e?: MouseEvent\<HTMLElement>) => void | func.noop | | - | | onChange | 改变时候的回调 | (value: UploadFile\[], file: UploadFile) => void | func.noop | | - | | onRemove | 点击移除的回调 | (file: object) => void | - | | - | | onCancel | 取消上传的回调 | () => void | - | | - | | itemRender | 自定义成功和失败的列表渲染方式,仅在 listType 是 card/image 时生效<br/><br/>**签名**:<br/>**参数**:<br/>*file*: 文件对象<br/>*action*: 包含属性 remove: 删除回调 | (file: ObjectFile, action?: { remove?: () => void }) => ReactNode | - | | 1.21 | | reUpload | 选择新文件上传并替换 | boolean | - | | 1.24 | | showDownload | 展示下载按钮 | boolean | true | | 1.24 | | onProgress | 上传中 | (file: UploadFile\[], e: UploadFile) => void | func.noop | | - | IE10+ 支持。继承 Upload 的 API,除非特别说明 \[底层能力] 可自定义样式的文件选择器 | 参数 | 说明 | 类型 | 默认值 | 是否必填 | | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | --------- | -------- | | disabled | 是否禁用上传功能 | boolean | - | | | multiple | 是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件 | boolean | false | | | webkitdirectory | 是否支持上传文件夹,仅在 chorme 下生效 | boolean | - | | | capture | 调用系统设备媒体 | string | - | | | dragable | 是否支持拖拽上传,`ie10+` 支持。 | boolean | - | | | accept | 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 input accept attribute | string | - | | | onSelect | 文件选择回调 | (e: UploadFile\[]) => void | func.noop | | | onDragOver | 拖拽经过回调 | (e: DragEvent\<HTMLInputElement>) => void | func.noop | | | onDragLeave | 拖拽离开回调 | () => void | func.noop | | | onDrop | 拖拽完成回调 | (fiels: File\[]) => void | func.noop | | > \[底层能力] 文件上传核心功能 > let uploader = new Upload.Uploader(\[options]); | 参数 | 说明 | 类型 | 默认值 | | --------------- | --------------------------------------------------------------------------------------------------------- | --------------- | ------ | | action | 上传的地址 | String | - | | data | 上传额外传参 | Object/Function | - | | headers | 设置上传的请求头部 | Object | - | | withCredentials | 是否允许请求携带 cookie | Boolean | false | | onProgress | 上传中<br><br>**签名**:<br>Function() => void | Function | noop | | onSuccess | 上传成功回调函数,参数为请求下响应信息以及文件<br><br>**签名**:<br>Function() => void | Function | noop | | onError | 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件<br><br>**签名**:<br>Function() => void | Function | noop | 某些场景下需要自定义Request,例如对接AWS S3 jd-sdk or aliyun oss sdk,. Upload 支持 传入自定义的 request方法. customRequest被传入一个 object,包含以下属性: * onProgress: (event: { percent: number }): void * onError: (event: Error, body?: Object): void * onSuccess: (body: Object): void * data: Object // 额外的数据 * filename: String // 文件名 * file: File // 原生File对象 * withCredentials: Boolean // 是否携带cookie * action: String // 请求地址 * method: String // 请求类型 post/put * timeout: Number // 超时 * headers: Object // 请求头 request需要返回一个包含abort方法的对象,用于中断上传 `abort(file?: File) => void`: abort the uploading file. 具体实现参照 Upload 默认request方法: <https://github.com/alibaba-fusion/next/blob/master/src/upload/runtime/request.jsx> | ErrorCode | 含义 | | ------------------- | ------------------------------------------------------------------ | | EXCEED\_LIMIT | 当设置了limit, 选中的文件 + 已上传的文件 > limit 报错 | | BEFOREUPLOAD\_REJECT | BeforeUpload中返回了 false/Promise.resolve(false)/Promise.reject() | | RESPONSE\_FAIL | 返回提响应错误 | 所有的值在`Upload.ErrorCode`. 通过 `formatter` 将来自后端的不规则数据转换为符合组件要求的数据格式 * `假设` 服务器的响应数据如下 * 转换方法 Next Upload组件上传文件使用的`multipart/form-data`方式上传文件,具体实现是在支持`FormData`对象的浏览器中使用xhr对象发送formdata。在不支持`FormData`对象的浏览器如IE9, 使用iframe原生表单实现。 各个语言的服务端框架,必然是可以处理`multipart/form-data`类型的请求,并解析出文件。一下给出两种语言的样例代码 * Java Springboot 样例 * Node Eggjs 样例 | 按键 | 说明 | | :---- | :--------------------------------------------------------------- | | Enter | 1.当组件获取焦点时,按下`Enter`就可以选择文件上传 2.删除上传图片 |