上传组件
upload
是用于处理文件上传的前端交互逻辑,可以更好地协助后端实现文件从本地到服务端上传的对接。
以下示例均没有设置上传接口,因此每次上传都会报异常提示,这属于正常现象。实际使用时设置成您的真实上传接口即可。
API | 描述 |
---|---|
var upload = layui.upload | 获得 upload 模块。 |
var inst = upload.render(options) | upload 组件渲染,核心方法。 |
inst.upload() | 对当前实例提交上传 |
inst.reload(options) | 对当前实例进行重载 |
inst.config | 获得当前实例的属性配置项 |
upload.render(options);
options
: 基础属性配置项。#详见属性
elem
属性外,其他基础属性也可以直接写在元素的 lay-options="{}"
属性中。<button type="button" class="layui-btn" id="ID-test-uoload">上传</button>
<button type="button" class="layui-btn test-class-upload" lay-options="{}">上传</button>
<button type="button" class="layui-btn test-class-upload" lay-options="{}">上传</button>
<!-- import layui -->
<script>
layui.use(function(){
var upload = layui.upload;
// 单个渲染
upload.render({
elem: '#ID-test-uoload',
// …
});
// 批量渲染
upload.render({
elem: '.test-class-upload',
// …
});
});
</script>
该方法返回一个实例对象,包含操作当前实例的相关方法成员。
var inst = upload.render(options);
console.log(inst); // 得到当前实例对象
inst.upload();
文件在进行选择后,会自动提交上传。而若文件上传失败,则可以使用该方法来重新上传,
// 渲染
var inst = upload.render({
elem: '#id',
error: function(){ // 上传失败的回调
// 当上传失败时,可在此处生成「重新上传」按钮,并执行该方法重新触发上传提交
/*
$('#btn').on('click', function(){
inst.upload();
})
*/
}
// …
});
inst.reload(options);
options
: 基础属性配置项。#详见属性该方法用于对当前的上传实例进行完整重载,所有属性均可参与到重载中。
// 渲染
var inst = upload.render({
elem: '#id',
// …
});
// 重载
inst.reload({
field: 'AAA',
// …
})
属性名 | 描述 | 类型 | 默认值 | |
---|---|---|---|---|
elem |
绑定元素选择器或 DOM 对象 |
string/DOM | - | |
url |
上传接口 |
string | - | |
field |
文件域的字段名 |
string |
|
|
传递给上传接口的额外参数,支持静态赋值和动态赋值两种写法。
|
object | - | ||
headers |
上传接口的请求头。如 |
object | - | |
dataType 2.8.17+ |
服务端返回的数据类型,如: |
string |
|
|
指定允许上传时校验的文件类型。可选值有:
|
string |
|
||
acceptMime |
规定打开系统的文件选择框时,筛选出的文件类型,多个
更多可选值参考: MIME 类型 |
string | - | |
允许上传的文件后缀。一般结合
|
string |
见左 |
||
auto |
是否选完文件后自动上传。若为 |
boolean |
|
|
bindAction |
设置触发上传的元素选择器或 DOM 对象。
|
string/DOM | - | |
force 2.6.9+ |
规定强制返回的数据格式。
|
string |
|
|
size |
设置文件最大可允许上传的大小,单位 |
number |
|
|
multiple |
是否允许多文件上传。不支持 |
boolean |
|
|
unified 2.8.8+ |
选择多文件时,是否统一上传,即只发送一次请求。 |
boolean |
|
|
number |
同时可上传的文件数量,一般当 |
number | - | |
drag |
是否接受拖拽的文件上传。 |
boolean |
|
|
text 2.8.9+ |
自定义内部各类场景下的提示文本
|
|||
选择文件后的回调函数。返回的参数如下
详细用法参考:#示例 |
||||
文件提交上传前的回调函数。返回的参数同 choose
|
||||
执行上传请求后的回调函数。返回的参数如下:
详细用法参考:#示例 |
||||
执行单次文件上传请求后的回调函数。返回的参数如下:
详细用法参考:#示例 |
||||
当开启多文件 (
|
||||
error |
执行上传请求出现异常的回调(一般为网络异常、URL 404等)。返回三个参数如下:
|
upload
组件支持跨域上传,一般有以下两种场景
自建上传服务。在服务端配置 CORS
开启跨资源共享。 即对接口所在的服务器设置 Access-Control-Allow-Origin
相关 header
信息。
第三方上传服务。如:阿里云、腾讯云等,只需按照不同平台对应的上传 SDK 进行操作即可。