使用HTML Form和Dropzone JS时,$ _FILES返回空

时间:2014-12-09 13:29:12

标签: javascript php jquery forms dropzone.js

我花了太多时间在这上面,并在stackoverflow上浏览了各种问题/答案。

我正在使用dropzone.js向我们的HTML / PHP表单添加基本的拖放上传功能。拖放工作正常,但是当提交表单或上传文件时,$ _FILES返回空,我无法弄明白。

我检查了一个tutorial但没有运气,还在Q & A's stackoverflow之前检查了一些posting,但没有任何帮助。

这是最简单形式的表格:

<form action="<? echo BASE_URL; ?>/process-uploads.php" method="POST" class="form-signin" role="form" enctype="multipart/form-data">

        <div class="upload_container dropzone">Drag & drop file here or

                <div class="fallback">
                    <input name="ad" type="file" />
                </div>
            </div><!--fileUpload btn btn-primary-->

        <div class="dropzone-previews"></div>

                <input class="btn btn-lg btn-primary btn-block btn-forward" style="background:#00a85a;" type="submit" name="submit" value="Next Step" />
            </form>

JS是:

<script type="text/javascript">

var myDropzone = new Dropzone(".dropzone", { 
    url: "<? echo BASE_URL; ?>/process-uploads.php/",
    paramName: "ad",
    addRemoveLinks: true,
    //maxFiles: 1,
    autoProcessQueue: false,
    //uploadMultiple: false,
    acceptedFiles: "image/png",
    dictInvalidFileType: "This file type is not supported.",

});
</script>

process-upload.php只是检查是否发送了什么,但是返回空:

<?php

if (!empty($_FILES)) {

    echo 'We have a file';

    if($_FILES['ad']) {
        echo 'We grabbed the ad<br />';

        echo '<pre>';
        var_dump($_FILES);
        echo '</pre>';
    }
}
?>

非常感谢任何帮助。作为参考,我已经检查了enyo的combining a form with dropzone and php

教程

3 个答案:

答案 0 :(得分:3)

今天我遇到同样的问题没有回复,上传文件和搜索所有SO问题时没有任何错误,我读了你的代码几次但没有解决方案。 我后来发现post_max_size = 8M设置得太小,无法上传大文件。确保将post_max_size设置得足够大,所以请在.htaccess文件中创建/添加它,我需要上传一个2gb的文件

php_value upload_max_filesize    2047M
php_value post_max_size          2047M
php_value max_execution_time     10800

答案 1 :(得分:0)

您需要在字段中添加name

<input type="file" name="ad" />

答案 2 :(得分:-2)

我想你参考了这篇文章...... Dropzone Demo

你能否加上课程&#39; dropzone&#39;你的形式如下,并尝试

<form action="<? echo BASE_URL; ?>/process-uploads.php" method="POST" class="dropzone form-signin" role="form" enctype="multipart/form-data">