html异步上传文件,javascript如何异步上传文件

本文介绍了如何使用HTML5和jQuery结合Ajax实现文件上传,并进行大小验证和进度显示。通过监听文件change事件进行初步验证,利用Ajax的progress事件更新进度条。此外,还提及了一个开源插件Uppy,它支持拖放上传和恢复上传功能。
摘要由CSDN通过智能技术生成

使用HTML5,您可以使用Ajax和jQuery进行文件上传。 不仅如此,您还可以使用HTML5进度标记(或div)执行文件验证(名称,大小和MIME类型)或处理progress事件。

下面,俺给出了一个实现的方法:

HTML

Javascript

我们可以通过文件的change事件来做一些验证

$(':file').on('change', function () {

var file = this.files[0];

if (file.size > 1024) {

alert('上传文件最大为1k');//限制文件上传大小

}

});

点击上传按钮触发事件

$(':button').on('click', function () {

$.ajax({

// 服务器处理脚本

url: 'upload.php',

type: 'POST',

// 表单数据

data: new FormData($('form')[0]),

// 告诉jquery不需要处理data或担心content-type

// 必须包含以下属性

cache: false,

contentType: false,

processData: false,

xhr: function () {

var myXhr = $.ajaxSettings.xhr();

if (myXhr.upload) {

//用于处理上传的进度

myXhr.upload.addEventListener('progress', function (e) {

if (e.lengthComputable) {

$('progress').attr({

value: e.loaded,

max: e.total,

});

}

}, false);

}

return myXhr;

}

});

});

正如您所看到的,使用HTML5(以及一些研究)文件上传不仅可以实现,而且非常简单。 尝试使用谷歌浏览器,因为有些浏览器可能不兼容。

开源插件

俺给大家在推荐一个插件,uppy,这个插件支持以下功能:

不依赖于任何插件,支持拖放

不离开页面进行文件上传

在浏览器崩溃的情况下恢复上传

原创文章,作者:犀牛前端部落,如若转载,请注明出处:https://www.pipipi.net/1738.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值