要通过 AJAX 以 serialize()
的形式发送文件对象数组,通常情况下,serialize()
方法并不直接支持文件上传,因为它主要用于序列化表单元素为 URL 编码的字符串,而文件上传需要使用 FormData
对象。以下是如何实现这一过程的详细步骤:
<form id="uploadForm" enctype="multipart/form-data">
<input type="file" name="files[]" multiple>
<button type="submit">上传文件</button>
</form>
FormData
对象发送文件。$(document).ready(function() {
$('#uploadForm').on('submit', function(e) {
e.preventDefault(); // 阻止表单默认提交行为
var formData = new FormData(this); // 创建 FormData 对象
$.ajax({
url: 'your-upload-url', // 替换为你的上传 URL
type: 'POST',
data: formData,
processData: false, // 告诉 jQuery 不要处理发送的数据
contentType: false, // 告诉 jQuery 不要设置 Content-Type 请求头
success: function(response) {
console.log('文件上传成功', response);
},
error: function(xhr, status, error) {
console.error('文件上传失败', error);
}
});
});
});
xhr.upload.onprogress
事件。通过上述步骤,你可以实现通过 AJAX 以类似 serialize()
的方式发送文件对象数组。
领取专属 10元无门槛券
手把手带您无忧上云