0

祝大家好日子,

我正在尝试获取正在上传的文件的名称/位置/大小。但似乎每次我查看控制台时它都不会显示任何内容。但我在这里关注了一切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'];

似乎缺少什么?任何帮助将非常感激。谢谢!

4

1 回答 1

1

这里面其实有两个问题:

首先,您错过enctype了表单上的属性。这是纯表单提交(没有 ajax)所必需的:

<form id="formAction" method="POST" action="add_item.php" enctype="multipart/form-data">

其次,的本机$.ajax不支持文件上传,但您可以使用插件管理它,例如http://jquery.malsup.com/form/#file-upload

于 2013-09-15T07:11:03.687 回答