$.post 文件上传
时间: 2023-11-18 12:03:11 浏览: 87
$.post() 是 JQuery 中的一种 AJAX 方法,用于向服务器发送 POST 请求,并且可以将数据作为参数传递给服务器。但是,$.post() 并不适合用于文件上传,因为它只能传输字符串数据,而无法处理二进制数据(比如图片、音频、视频等文件)。
要实现文件上传,可以使用 FormData 对象。FormData 对象是一种专门用于处理表单数据的对象,可以把表单数据转换成一组键值对,以便于通过 AJAX 提交到服务器。使用 FormData 对象可以方便地上传二进制文件。
以下是一个使用 FormData 对象上传文件的示例代码:
```
var formData = new FormData();
formData.append('file', $('#fileInput')[0].files[0]);
$.ajax({
url: 'upload.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data){
// 文件上传成功
},
error: function(){
// 文件上传失败
}
});
```
其中,formData.append('file', $('#fileInput')[0].files[0]) 将文件对象添加到 FormData 对象中,'#fileInput' 是一个 input 标签,用于选择文件。processData 和 contentType 参数需要设置为 false,以便让 JQuery 不处理数据。上传成功后,可以在 success 回调函数中处理服务器返回的数据。
阅读全文