$.ajax() 上传文件
时间: 2023-06-28 21:06:43 浏览: 69
$.ajax() 方法可以通过设置参数来实现上传文件的功能。具体实现步骤如下:
1. 创建一个表单,其中包含一个文件输入框和一个提交按钮。
```html
<form id="myForm">
<input type="file" name="file">
<button type="submit">Submit</button>
</form>
```
2. 使用 jQuery 的 $.ajax() 方法来处理表单的提交事件。在调用 $.ajax() 方法时,需要设置以下参数:
- url:表示要提交表单的 URL 地址。
- type:表示使用 POST 方法提交表单。
- data:表示要提交的数据,这里需要使用 FormData 对象来包装表单数据。
- processData 和 contentType:分别设置为 false 和 false,表示不对表单数据进行处理和设置请求头。
- success 和 error:表示请求成功和失败的回调函数。
```javascript
$('#myForm').submit(function(event) {
event.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: 'upload.php',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function(data) {
console.log('Upload success: ' + data);
},
error: function(xhr, status, error) {
console.log('Upload error: ' + error);
}
});
});
```
3. 在服务器端使用 PHP 脚本来处理文件上传。PHP 提供了一个 $_FILES 数组来保存上传的文件信息。可以使用 move_uploaded_file() 函数将上传的文件从临时目录移动到指定的位置。
```php
<?php
if ($_FILES['file']['error'] == UPLOAD_ERR_OK) {
$tempFile = $_FILES['file']['tmp_name'];
$targetFile = 'uploads/' . $_FILES['file']['name'];
if (move_uploaded_file($tempFile, $targetFile)) {
echo 'Upload success';
} else {
echo 'Upload failed';
}
} else {
echo 'Upload error';
}
?>
```