FormData追加无法正常工作

我编写此代码是为了使用inputHTML中的元素将图像上传到本地Apache

Web服务器。该file记录为不为空,但为什么是form_data完全空的?

$('#upload-image').change(function(e){

var file = e.target.files[0];

var imageType = /image.*/;

if (!file.type.match(imageType))

return;

console.log(file);

var form_data = new FormData();

form_data.append('file', file);

console.log(form_data);

$.ajax({

url: 'http://localhost/upload.php',

cache: false,

contentType: false,

processData: false,

data: form_data,

type: 'POST',

success: function(response){

console.log(response);

},

error: function(error){

console.log(error);

}

});

});

这是我upload.php在本地网络服务器上的

<?php

header('Access-Control-Allow-Origin: *');

if ( 0 < $_FILES['file']['error'] ) {

echo 'Error: ' . $_FILES['file']['error'] . '<br>';

}

else {

move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);

$target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_FILES['file']['name'];

echo $target_path;

}

?>

console.log(response)记录所有PHP文件的代码行,而不是返回的结果echo

回答:

仅记录formData对象时,console.log(formData)它始终返回空,因为您无法记录formData。

如果您只需要在发送前对其进行记录,则可以使用它entries()来获取formData对象中的条目

$('#upload-image').change(function(e) {

var file = e.target.files[0];

var imageType = /image.*/;

if (!file.type.match(imageType)) return;

var form_data = new FormData();

form_data.append('file', file);

for (var key of form_data.entries()) {

console.log(key[0] + ', ' + key[1]);

}

$.ajax({

url: 'http://localhost/upload.php',

cache: false,

contentType: false,

processData: false,

data: form_data,

type: 'POST',

success: function(response) {

console.log(response);

},

error: function(error) {

console.log(error);

}

});

});

以上是 FormData追加无法正常工作 的全部内容, 来源链接: utcz.com/qa/411390.html

回到顶部