我看到一些使用formdata通过ajax上传图像的简单代码,但在php方面,它在$_POST
中显示为NULL,我尝试echo $_POST['file'] ['name']
但它没有回显...
我的 php 文件有:
var_dump($_POST);
如何使用ajax发送到php的formData(在php中)?
$(document).on('change','#image',function(){
var fd = new FormData();
fd.append( 'file', $(this).prop("files")[0]);
console.log(fd);
$.ajax({
type: 'post',
processData: false,
contentType: false,
url: './images.php',
data: fd,
success: function(a){
console.log(a);
}
});
});
#image{display:none}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<label for="image"><i class="fa fa-camera" aria-hidden="true"></i></label><input type="file" name="file" id="image">
最佳答案
您必须使用超全局 $_FILES
而不是 $_POST
尝试:
var_dump($_FILES);
输出类似:
array (size=1) 'file' =>
array (size=5)
'name' => string '49e9c80947764261bbd9d46a8063c3d1.jpg' (length=36)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'C:\xampp\tmp\php64A9.tmp' (length=24)
'error' => int 0
'size' => int 3090
关于javascript - var dump formdata as POST 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47157315/