【问题标题】:$_FILES returns empty when using HTML Form and Dropzone JS$_FILES 在使用 HTML 表单和 Dropzone JS 时返回空
【发布时间】:2015-02-07 09:54:57
【问题描述】:

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

我正在使用dropzone.js 向我们的 HTML/PHP 表单添加基本的拖放上传功能。拖放效果很好,但是当提交表单或上传文件时,$_FILES 返回为空,我无法弄清楚。

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

这是最简单的形式:

<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 教程

【问题讨论】:

  • 您也可以尝试为您的表单添加一个“dropzone”类吗?
  • 根据dropzonejs.com,您应该为您的
    标签提供“dropzone”类。让我知道它是否能解决您的问题

标签: javascript php jquery forms dropzone.js


【解决方案1】:

您需要将name 添加到您的字段中:

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

【讨论】:

  • 谢谢,我原来有那个,但在排除故障后我将它删除并放回去,但这不是问题。
【解决方案2】:

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

您能否像下面那样在您的表单中添加“dropzone”类并尝试

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

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 1970-01-01
      • 2019-07-28
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      相关资源
      最近更新 更多