祝大家美好的一天,
我正在尝试获取正在上传的文件的名称/位置/大小。但似乎每次我在控制台中查看时都不会显示任何内容。但我在这里关注了一切 http://www.w3schools.com/php/php_file_upload.asp
索引.php
<form id="formAction" method="POST" action="add_item.php" enctype="multipart/form-data" >
<input id="loc" type="file" name="file" />
<input type="submit" name="submit" value="Add" />
</form>
JavaScript
$("form#formAction").on("submit", function (e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "add_item.php",
data: $(this).serialize(),
success: function (data) {
console.log(data);
},
error: function() {
alert('Some fields are empty.');
}
});
});
add_item.php
// fetching data
echo $_FILES['file']['tmp_name'];
似乎缺少什么?任何帮助将不胜感激。谢谢!
实际上有两个问题:
首先,您错过了表单enctype
属性。这对于纯表单提交(没有 ajax)是必需的:
<form id="formAction" method="POST" action="add_item.php" enctype="multipart/form-data">
其次,jquery的原生$.ajax
不支持文件上传,但你可以使用插件(如 http://jquery.malsup.com/form/#file-upload)进行管理。