
# 上传
上传组件用于上传文件。
在标准页面设计界面，从"基本组件 \> 表单"中，拖拽"上传"组件至页面工作区域，如[图1]。
图1上传   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960284097.png "点击放大")
#### 查看组件帮助
将鼠标放在对应的组件上，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960284093.png)，可查看组件说明。
图2查看组件说明   
![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960284105.png)
#### 属性
- 数据绑定：通过建立不同类型的视图模型，将各种数据源和组件的返回值或者属性值进行关联，实现动态数据效果。
  - 值绑定：设置组件绑定的数据模型，数据模型一般有以下几种。更多介绍，请参见[值绑定](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0048.html#astrozero_05_0048__section1786195310514)。
    - 自定义：由用户自定义的前端模型，可以在模型树上快速创建自定义字段。
    
    - 对象：由后台对象模型映射创建，支持选择字段。
    
    - 服务：由后台服务的出入参数模型创建，分别生成inputParam和outputParam节点。
    
    - 事件：由后台事件的字段映射创建，并且支持websocket刷新模型数据。
     
  
  - 属性值绑定，用于对该组件所有属性的动态设置。当某一属性被动态绑定时，以绑定值为准。更多介绍，请参见[属性绑定](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0048.html#astrozero_05_0048__section1923073313920)。
   
- 基本属性：基本属性通过数据绑定后，在运行时以数据绑定的值为准。
  - 标签：设置组件的标签名，用于在界面展示。
  
  - 文本：上传按钮上，显示的文本。 ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960124289.png "点击放大")
    
  
  - 默认已上传的文件列表：设置默认已上传的文件列表。
  
  - 存储：上传文件的存储类型，单击该参数后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933044972.png)，可进行配置。
    - 存储：存储器类型。
      - OBS：通过OBS类型连接器，存储到华为OBS（Object-based Storage Service）上。
      
      - MINIO：通过MINIO类型连接器，存储到MINIO上。
      
      - OBJECTSTORAGEPROXY：通过OBJECTSTORAGEPROXY类型连接器，存储到相应服务器上。
      
      - CUSTOMAPI：通过自定义接口，来上传和展示文件。
       
    
    - 连接器：当存储配置为OBS、MINIO或OBJECTSTORAGEPROXY时，该参数才会显示，表示具体的连接器。
    
    - 桶：当存储配置为OBS、MINIO或者OBJECTSTORAGEPROXY时，该参数才会显示，表示具体的存储桶。
    
    - 上传服务：当存储配置为CUSTOMAPI时，该参数才会显示，选择自定义接口实现上传文件的功能。
    
    - 展示服务：当存储配置为CUSTOMAPI时，该参数才会显示，选择自定义接口实现展示文件的功能。
     
  
  - 过滤文件类型：接受上传的文件类型，为文件原生的属性，会在选择文件时按照文件类型过滤，多个类型格式间以","符号隔开，如"image/jpeg,application/msword,text/plain"。
  
  - 支持文件类型：支持的文件类型，与"过滤文件类型"不同的是，该参数是识别文件的后缀名，"过滤文件类型"为原生的属性，会在选择文件时过滤，可以两者结合使用。
  
  - 支持多文件：是否支持多选文件。
  
  - 自定义文件名：上传的单个文件时，可自定义上传的文件名。
  
  - 同名处理：防止同名文件覆盖，同名文件名后自动增加随机数，也可在"on-before-upload"事件中自定义处理文件名。
  
  - 上传路径：自定义服务器端上传路径，默认为uistudio/upload，上传路径不能是以"./"或"../"等开头的相对路径。
  
  - 文件数量：多文件上传时，最大文件数量限制，即允许上传的文件数量，超过此数量后，将不允许上传。
  
  - 文件大小：单个文件大小限制，单位kb。
  
  - 文件大小错误描述：当文件超过限制大小时，提示的错误描述。
  
  - 预览：是否开启预览，只在图片时生效。
  
  - 图片压缩：是否开启图片压缩功能，当前仅支持jpg、jpeg和png格式的图片。
  
  - 压缩尺寸：当"图片压缩"开关打开时，该参数才会显示。图片压缩尺寸，分为保持原尺寸和自定义尺寸。
    - 保持原尺寸压缩： 如果设置宽度，高度没设置或高度和宽度都设置了，宽度以设置的为准，高度则按照原来的宽高比例生成。 如果设置高度，宽度没设置，高度以设置的为准，宽度则按照原来的宽高比例生成。如果宽度和高度都没设置，宽高以原图片宽高为准。
    
    - 自定义尺寸压缩：宽度和高度两个属性都没有设置或者只设置了其中一个，没有设置值的属性以原图片的同属性值为准。
     
  
  - 压缩宽度(px)：指定图片压缩的宽度。当"图片压缩"开关打开时，该参数才会显示。
  
  - 压缩高度(px)：指定图片压缩的高度。当"图片压缩"开关打开时，该参数才会显示。
  
  - 图片压缩至指定大小(kb)：将图片压缩至指定的大小以下。当"图片压缩"开关打开时，该参数才会显示。
  
  - 公开读：文件的访问控制权限，默认为"private"（私有），否则为"public-read"（公共读）。
  
  - 可选择：文件列表是否可以选择，仅为图片时有效。
  
  - 是否多选：文件列表是否支持多选。当"可选择"开关打开时，该参数才会显示。
  
  - 选择类型：选择时，展示的样式，包含"遮罩层选择"或"选择框选择"两种类型。当"可选择"开关打开时，该参数才会显示。
  
  - 选择框内容：设置选择框的内容。当"选择类型"设置为"选择框选择"时，该参数才会显示。
  
  - 选中时显示内容：选中时，选择框显示的内容。当"选择类型"设置为"选择框选择"时，该参数才会显示。
  
  - 九宫格：九宫格形态展示图片列表，仅当上传全部为图片时开启效果较好，移动端每行展示4个并且大小自适应。
  
  - 列表只显示进度条：上传列表的展示内容仅展示进度条，且文件上传完后进度条消失，目前适用于文档和压缩包。
  
  - 展示方向：上传列表中多张图片时，控制图片展示排列方向，移动端仅支持纵向展示。
  
  - 图片宽高：上传列表中单个图片的宽高，单位像素，移动端不生效。
  
  - 最大宽度：限制最大的宽度。
   
- 公共
  - 控件名称：当前组件的名称。
  
  - 隐藏：是否隐藏该组件，此方式为静态配置该组件的隐藏。还可以将该组件属性值"隐藏"配置为布尔类型模型字段，在自定义JS代码中来控制模型字段取值，从而设置该组件是否隐藏，这种动态设置优先级是最高的。
  
  - 禁用：是否禁用该组件。
  
  - 只读：组件是否只读。
   
- 样式 \> 高级设置 \> 样式类：当前组件使用的CSS样式类名，可在CSS代码中进行引用。
 
#### 事件
在事件中，显示了组件暴露出来的一些常用事件，供用户实现，来扩展组件的交互。整个页面有加载（on-load）事件，该事件在页面渲染完成后执行，可进行数据初始化操作。
表1事件编排 
| 事件名   | 说明                                                                                                                                                     | 返回值                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| 数据改变  | 已上传文件列表改变时触发。                                                                                                                                          | 当前已上传文件列表。                                                                                                                                                                                                                                                                                                                                                        |
| 文件上传  | 开始上传文件时触发。                                                                                                                                             | - 当前开始上传的文件。  - 当前已上传文件列表。   |
| 操作成功  | 上传成功后触发。                                                                                                                                               | 上传成功文件的地址。                                                                                                                                                                                                                                                                                                                                                        |
| 选中文件  | 文件列表选中时或取消选中时触发。                                                                                                                                       | - 当前文件。  - 已选中的文件。              |
| 文件上传前 | 文件上传前触发。 在"文件上传前"事件后，单击齿轮图标，在"自定义JS代码"中增加"$current.showUploadList = false"语句，可取消上传预览。 | - 当前文件。  - 文件名。              |
   
#### 库
在库中，可配置页面需要的依赖库，扩展页面功能。库分为系统预置库和自定义库两种，更多介绍请参见[如何引入第三方库](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0058.html)。
系统为上传组件预置了clearFiles()方法，该方法用于清除上传文件列表。在上传组件的事件编排JS代码中，可使用该方法，示例JS代码如下：
```
var _component = context.$component.get('upload_0');_component.clearFiles();
```
