使用jQuery获取文件输入字段

时间:2013-08-03 00:54:02

标签: php jquery ajax file-upload

我有一个包含两个文件上传字段的表单。当您使用PHP正常处理通过HTML上传的文件时,您会得到一个$_FILES数组,其中包含一些包含所有文件信息的$_FILES['name']$_FILES['tmp_name']等条目。

我希望能够通过jQuery获取所有这些信息。如果我上传$('[name="textfile1"]').val(),只需点击C:/fakepath/test.txt即可test.txt。有没有办法获得实际的信息数组?我有一堆文本输入字段以及文件上传字段,我希望能够通过AJAX调用一次传递所有信息。

    <form action="" method="post" enctype="multipart/form-data">
        <div class="input">
            <p>Upload the sitelist (.txt files only):</p>
            <input style="margin-top:0;margin-bottom:6px" type="file" name="textfile1" /><br />         
        </div>

        <div class="input">
            <p>Upload the dictionary (.txt files only):</p>
            <input style="margin-top:0;margin-bottom:6px" type="file" name="textfile2" /><br />         
        </div>
    </form> 

1 个答案:

答案 0 :(得分:1)

我讨厌你的游行下雨,但这不可能

PHP处理服务器端的事情。提交表单时生成的信息(如文件大小,文件类型,文件tmp路径等)都是在表单提交时生成的。如果这是可能的,表单验证将更容易,因为它可以在插入文件期间检查。但是,这也会带来安全风险,因为它会公开当前的用户名(通过包含用户名的文件路径)。

你提到你想通过ajax推送它。无法异步发送文件。这可以通过简单地通过ajax提交表单来完成。但是,如果没有首先通过PHP&amp;文档,您将无法获取文件信息。生成变量服务器端。

如果你只是想要文件名&amp;其他通用信息(不是PHP生成的路径),请查看HTML5文件API at HTML5Rocks' Tutorial for File APIs here

我希望我帮助过你。 ;)