1 回答
TA贡献1789条经验 获得超10个赞
在js中将文件发送到服务器的一个好方法是使用formData:按照这个 https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects
当你做
<?php
if (isset($_POST['upload'])) {
$target = "images/".basename($_FILES['image']['name']);
$image = $_FILES['image']['name'];
}
?>
您尝试检索文件的绝对名称(这里是一个字符串)然后在服务器上您将此文本作为图像文件获取,这就是 PHP 启动 undefined 的原因
$_FILES["图片"]
因为收到的值是一个字符串而不是一个文件。
$_FILES['image']['name'] 包含上传文件的原始名称。
举例:
var form = $('form.img-form')[0];
var formData = new FormData(form);
或为 FormData() 指定确切的数据
var formData = new FormData();
formData.append('size', '1000000');
//Attach file
formData.append('image', $('input[type=file]')[0].files[0]);
现在调用ajax函数
$.ajax({
url: 'includes/profile/set_image.php',
type: 'POST',
data: formData,
success: function(data) {
console.log("successful image update");
},
error: function(requestObject, error, errorThrown) {
console.log(error);
console.log(errorThrown);
}
});
- 1 回答
- 0 关注
- 146 浏览
添加回答
举报