upload 上传

文件选择上传和拖拽上传控件。

注意事项

  • 务必 指定 resReName 来获取正确数据

  • multiple 决定返回数组或者单体数据

  • 若指定 enumasyncData 将被转化成 fileList (nzFileList) 值,且务必初始保证一个 response 属性表示远程数据并 resReName 能正确获取

  • 图像预览:默认使用 nzModal 来显示包含文件对象的 urlthumbUrl

代码演示

upload 上传 - 图1

基础样例

最简单的用法。

  1. import { Component } from '@angular/core';
  2. import { SFSchema, SFUploadWidgetSchema } from '@delon/form';
  3. import { NzMessageService } from 'ng-zorro-antd/message';
  4. @Component({
  5. selector: 'form-upload-simple',
  6. template: `
  7. <sf [schema]="schema" (formSubmit)="submit($event)"></sf>
  8. `,
  9. })
  10. export class FormUploadSimpleComponent {
  11. schema: SFSchema = {
  12. properties: {
  13. file: {
  14. type: 'string',
  15. title: '单个文件',
  16. enum: [
  17. {
  18. uid: -1,
  19. name: 'xxx.png',
  20. status: 'done',
  21. url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
  22. response: {
  23. resource_id: 1,
  24. },
  25. },
  26. ],
  27. ui: {
  28. widget: 'upload',
  29. action: '/upload',
  30. resReName: 'resource_id',
  31. urlReName: 'url',
  32. } as SFUploadWidgetSchema,
  33. },
  34. mulit: {
  35. type: 'string',
  36. title: '多个文件',
  37. ui: {
  38. widget: 'upload',
  39. action: '/upload',
  40. resReName: 'resource_id',
  41. urlReName: 'url',
  42. multiple: true,
  43. } as SFUploadWidgetSchema,
  44. },
  45. // 拖动模式
  46. drag: {
  47. type: 'string',
  48. title: 'Drag',
  49. ui: {
  50. widget: 'upload',
  51. action: '/upload',
  52. resReName: 'resource_id',
  53. urlReName: 'url',
  54. type: 'drag',
  55. } as SFUploadWidgetSchema,
  56. },
  57. },
  58. };
  59. constructor(public msg: NzMessageService) {}
  60. submit(value: any) {
  61. this.msg.success(JSON.stringify(value));
  62. }
  63. }

API

schema 属性

成员说明类型默认值
[readOnly]禁用状态boolean-

ui 属性

成员说明类型默认值
[asyncData]异步数据源() => Observable<SFSchemaEnumType[]>-
[type]上传类型select,dragselect
[text]按钮文本string点击上传
[hint]提醒文本,drag 时有效string支持单个或批量,严禁上传公司数据或其他安全文件
[resReName]重命名返回参数,支持 a.b.c 的嵌套写法,若不指定表示整个返回体string-
[urlReName]重命名预览图像URL返回参数,支持 a.b.c 的嵌套写法,若不指定表示使用文件对象的 urlthumbUrlstring-
[action]必选参数, 上传的地址string, ((file: UploadFile) => string, Observable<string>)-
[accept]接受上传的文件类型, 详见 input accept Attributestring, string[]-
[limit]限制单次最多上传数量,multiple 打开时有效;0 表示不限number0
[filter]自定义过滤器UploadFilter[]-
[fileList]文件列表UploadFile[]-
[fileSize]限制文件大小,单位:KB;0 表示不限number0
[fileType]限制文件类型,例如:image/png,image/jpeg,image/gif,image/bmpstring-
[headers]设置上传的请求头部Object, (file: UploadFile) => {} | Observable<{}>-
[listType]上传列表的内建样式text,picture,picture-cardtext
[showUploadList]是否展示列表, 可设为一个对象,用于单独设定 showPreviewIconshowRemoveIconbooleantrue
[multiple]是否支持多选文件,IE10+ 支持。开启后按住 ctrl 可选择多个文件。booleanfalse
[name]发到后台的文件参数名stringfile
[data]上传所需参数或返回上传参数的方法Object, (file: UploadFile) => {} | Observable<{}>-
[withCredentials]上传请求时是否携带 cookiebooleanfalse
[directory]支持上传文件夹(caniusebooleanfalse
[openFileDialogOnClick]点击打开文件对话框booleantrue
[beforeUpload]上传文件之前的钩子,参数为上传的文件,若返回 false 则停止上传(file: UploadFile, fileList: UploadFile[]) => boolean|Observable<boolean>-
[customRequest]通过覆盖默认的上传行为,可以自定义自己的上传实现(item: UploadXHRArgs) => Subscription-
[remove]点击移除文件时的回调,返回值为 false 时不移除(file: UploadFile) => boolean|Observable-
[preview]点击文件链接或预览图标时的回调(file: UploadFile) => void-
[previewFile]自定义文件预览逻辑(file: UploadFile) => Observable<string>-
[download]点击下载文件时的回调,如果没有指定,则默认跳转到文件 url 对应的标签页(file: UploadFile) => void-
[transformFile]在上传之前转换文件。支持返回一个 Observable 对象(file: UploadFile) => UploadTransformFileType-
[change]上传文件改变时的状态(args: UploadChangeParam) => void-