输入类型文件没有返回值

时间:2013-09-15 07:03:35

标签: javascript php html5 input

大家好日子,

我正在尝试获取正在上传的文件的名称/位置/大小。但似乎每次我在控制台中查看它都不会显示任何内容。但是我在这里跟踪了所有内容http://www.w3schools.com/php/php_file_upload.asp

的index.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'];

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

1 个答案:

答案 0 :(得分:1)

实际上有两个问题:

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

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

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