本文介绍使用 JavaScript 和 jQuery 实现文件异步上传的完整代码。通过监听文件选择事件,利用 FormData 对象封装文件数据,并借助 XMLHttpRequest 发送 POST 请求,完成图片文件的无刷新上传处理。
HTML 表单结构
HTML 部分构建上传表单,设置 enctype 为 multipart/form-data 以支持文件传输,指定提交地址和方法,并包含一个接受图片类型的文件输入控件。
<form action="url" enctype="multipart/form-data" id="myform" method="post">
<input accept="image/*" id="addfile" type="file" />
</form>
JavaScript 异步上传逻辑
jQuery 代码监听文件输入框的 change 事件。当用户选择文件后,获取文件对象并创建 FormData 实例,将表单数据及选中的文件追加到 FormData 中。随后初始化 XMLHttpRequest 对象,绑定加载完成和错误处理回调,配置 POST 请求并发送数据。
$("#addfile").on('change', function () {
var f = $(this).get(0).files[0];
var form = document.getElementById('myform');
var formData = new FormData(form);
formData.append('Filedata', f);
var xhr = new XMLHttpRequest();
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.open('POST', form.action);
xhr.send(formData);
});
function uploadComplete(evt)
{
var data=evt.target.responseText
}
function uploadFailed()
{
alert("上传失败!请重试!");
}
上述内容展示了 JavaScript 异步上传图片文件的具体实现方式,旨在提供实用的代码参考。若读者在使用过程中遇到疑问,欢迎留言交流,作者将及时回复。感谢对本站的支持。