BUI

其它版本:

API for BUI 1.6.x

Show:

bui.fileselect Class

选择文件

预览地址: demo

选择文件

add: 添加文件
remove: 移除添加的文件
clear: 清除所有添加的文件
data: 获取添加的数据
value: 获取上传的文件值
toBase64: 把获取到的本地图片转换成base64位

Constructor

bui.fileselect

(
  • option
)

Parameters:

  • option Object
    • [quality] [ 图片的质量, 默认 0.8] Boolean optional
    • [width] [ 图片的宽度, 默认 800, 原生是在上传前压缩成800宽度,web是在显示的时候显示为800宽度,需要后台自己压缩] Boolean optional
    • [mediaType] [ 文件的类型, picture | video | audio | allmedia ,原生只支持图片上传] String optional
    • [from] [ 1.4.7新增, 默认 "" 从相册选 | "camera" 相机拍照 | "camcorder" 录像, 需要配合 mediaType 参数] String optional
    • [needNative] [ 1.5.1新增, 是否使用原生上传, 不受bui.isWebapp状态决定 默认 false|true 通过这个切换对应的效果,可以通过全局配置 bui.config.fileselect= {needNative:true}] Boolean optional

Example:

js:

       // 1. 初始化, 这里如果有 onSuccess,onFail 则为公共处理方法,添加只需要 uiFileSelect.add();
                                       var uiFileSelect = bui.fileselect();
                                
                                       // 2. 调用 添加文件方法
                                       uiFileSelect.add({
                                           onSuccess: function(files){
                                               // 展示本地图片,部分手机不支持
                                               var url = window.URL.createObjectURL(files[0]);
                                               document.querySelector('img').src = window.URL.createObjectURL(url);
                                
                                               // 展示base64本地图片
                                               // this.toBase64({
                                               //     onSuccess: function (url) {
                                               //         document.querySelector('img').src = url;
                                
                                               //     }
                                               // });
                                           },
                                           onFail: null
                                       })
                                

Methods

add

(
  • [option] [对象]
  • [option.needCompress] [ 1.5.3新增 是否需要压缩, 默认 false | true , true 以下的质量及宽度高度参数才会有效.]
  • [option.quality] [ 图片质量,默认0.8]
  • [option.width] [ 图片宽度,默认800]
  • [option.height] [ 图片高度,默认800]
  • [option.mediaType] [ 文件的类型, picture | video | allmedia (needNative:true 只支持图片上传 )]
  • [option.from] [ 图片来源, 默认来自 "picture"(相册) | camera(相机)]
  • [option.destinationType] [ file (返回路径值) | data (返回base64位值)]
  • [option.onSuccess] [ 成功的回调]
  • [option.onFail] [ 失败的回调]
)
chainable

添加文件, 参数的配置全部针对原生选择

Parameters:

  • [option] [对象] Object optional
  • [option.needCompress] [ 1.5.3新增 是否需要压缩, 默认 false | true , true 以下的质量及宽度高度参数才会有效.] Boolean optional
  • [option.quality] [ 图片质量,默认0.8] Number optional
  • [option.width] [ 图片宽度,默认800] Number optional
  • [option.height] [ 图片高度,默认800] Number optional
  • [option.mediaType] [ 文件的类型, picture | video | allmedia (needNative:true 只支持图片上传 )] String optional
  • [option.from] [ 图片来源, 默认来自 "picture"(相册) | camera(相机)] String optional
  • [option.destinationType] [ file (返回路径值) | data (返回base64位值)] String optional
  • [option.onSuccess] [ 成功的回调] Function optional
  • [option.onFail] [ 失败的回调] Function optional

Example:

       uiFileSelect.add({
                                                       onSuccess: function(file){
                                                           // this 指向uiFileSelect
                                                           // console.log(this)
                                                       }
                                                   })
                                            

clear

()

清空所有选择的文件

Example:

       uiFileSelect.clear();
                                            

currentIndex

()

Defined in src/scripts/mix/web/bui.fileselect.js:680

Available since 1.5.2

获取最后选择的文件名,删除的时候

Example:

       var currentIndex = uiFileSelect.currentIndex();
                                            

currentName

()

Defined in src/scripts/mix/web/bui.fileselect.js:662

Available since 1.5.2

获取最后选择的文件名,删除的时候

Example:

       var currentName = uiFileSelect.currentName();
                                            

data

()

获取所有选择的文件, 原生默认只返回最后一个选择的文件

Example:

       var data = uiFileSelect.data();
                                                   // 返回 [{ name: "base64.jpg", data: null, type: "jpg" }]
                                                   // 其中 data为要上传的文件值
                                            

remove

(
  • name
  • [key] [ 图片名字在哪个字段, 默认是 "name"]
)
chainable

删除选择的文件, 安卓选择后的文件名自动更改为 resize.jpg

Parameters:

  • name String

    [ 要删除的图片名字带后缀名 ]

  • [key] [ 图片名字在哪个字段, 默认是 "name"] String optional

Example:

       uiFileSelect.remove("resize.jpg");
                                            

resize

(
  • [option] [ 对象]
  • [option.data] [ 图片的值, 不传则拿最后选择的文件]
  • [option.quality] [ 图片质量,默认0.8]
  • [option.width] [ 图片宽度,默认800]
  • [option.height] [ 图片高度,默认800]
  • [option.needCompress] [ 是否需要压缩, 默认: true | false]
  • [option.destinationType] [ 更改以后的图片返回什么类型, file (文件类,跟默认一致) | data (返回base64位值) | blob(返回文件流)]
  • [option.onSuccess] [ 成功的回调,第一个形参为拿到转换后的值]
  • [option.onFail] [ 失败的回调]
)
chainable

Defined in src/scripts/mix/web/bui.fileselect.js:215

Available since 1.5.3

修改图片大小

Parameters:

  • [option] [ 对象] Object optional
  • [option.data] [ 图片的值, 不传则拿最后选择的文件] Object optional
  • [option.quality] [ 图片质量,默认0.8] Number optional
  • [option.width] [ 图片宽度,默认800] Number optional
  • [option.height] [ 图片高度,默认800] Number optional
  • [option.needCompress] [ 是否需要压缩, 默认: true | false] Boolean optional
  • [option.destinationType] [ 更改以后的图片返回什么类型, file (文件类,跟默认一致) | data (返回base64位值) | blob(返回文件流)] String optional
  • [option.onSuccess] [ 成功的回调,第一个形参为拿到转换后的值] Function optional
  • [option.onFail] [ 失败的回调] Function optional

Example:

       uiFileSelect.resize({
                                                       onSuccess: function(file){
                                                           // this 指向uiFileSelect
                                                           // console.log(this)
                                                       }
                                                   })
                                            

toBase64

(
  • [option] []
  • [option.data] [ 通过文件选择的文件进行转码]
  • [option.needCompress] [ 1.5.1新增,转换成base64以后需要压缩吗 默认 false | true , 为true, mimeType 类型才有效]
  • [option.mimeType] [ 1.5.1新增,转换的图片类型 默认为原图片类型 , "image/jpeg" | "image/png"]
  • [option.onSuccess] [ 成功的回调]
  • [option.onFail] [ 失败的回调]
)
chainable

把选择的图片文件转换成base64地址,可以直接展示在页面上

Parameters:

  • [option] [] Object optional
  • [option.data] [ 通过文件选择的文件进行转码] String optional
  • [option.needCompress] [ 1.5.1新增,转换成base64以后需要压缩吗 默认 false | true , 为true, mimeType 类型才有效] Boolean optional
  • [option.mimeType] [ 1.5.1新增,转换的图片类型 默认为原图片类型 , "image/jpeg" | "image/png"] String optional
  • [option.onSuccess] [ 成功的回调] Function optional
  • [option.onFail] [ 失败的回调] Function optional

Example:

       // 展示本地图片
                                                   uiFileSelect.toBase64({
                                                       onSuccess: function (imgurl) {
                                                           $("#id").append('<img src="'+imgurl+'" />')
                                                       }
                                                   });
                                            

value

()

获取最后选择的文件

Example:

       var value = uiFileSelect.value();
                                                   // 返回值 value为要上传的文件值, web上传跟原生上传得到的值不一样