File upload 在dropzone.js不工作且无错误的情况下上载

File upload 在dropzone.js不工作且无错误的情况下上载,file-upload,dropzone.js,File Upload,Dropzone.js,dropzone和upload.php文件有问题。我正在尝试将上载的文件保存到计算机上的目录中。我正在使用MAMP,所以目录在htdocs中。我的表格的代码是: <form action="./upload.php" class="dropzone" id="upload-form" method="post" enctype="multipart/form-data"> &l

dropzone和upload.php文件有问题。我正在尝试将上载的文件保存到计算机上的目录中。我正在使用MAMP,所以目录在htdocs中。我的表格的代码是:

<form action="./upload.php" class="dropzone" id="upload-form" method="post" enctype="multipart/form-data">
    <div class="fallback">
        <input id="upload" name="upload[]" type="file" multiple/>
    </div>

    <input type="submit" name="uploaden[]" id="uploaden" multiple/>
</form>
和我的新建upload.php文件:

    <?php

ini_set('display_errors', 'On');
error_reporting(E_ALL);

$ds          = DIRECTORY_SEPARATOR;  //1
 
$storeFolder = '/uploads';   //2

if (!empty($_FILES)) {

if(isset($_FILES['files']['tmp_name']) && is_array($_FILES['files']['tmp_name'])){
     
    foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) {

            $tempFile = $_FILES['file']['tmp_name'];          //3 

            $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;  //4

            if(!file_exists($targetPath)) {
                
                $targetFile =  $targetPath. $_FILES['file']['name'];  //5

                move_uploaded_file($tempFile,$targetFile); //6
            }

            else {
                $targetFile =  $targetPath. $_FILES['file']['name'];  //5

                move_uploaded_file($tempFile,$targetFile); //6
            }
    }
}
}

?> 

谁能帮我一下我做错了什么,为什么文件不在目录中?

乍一看,我注意到你在做什么

我不知道您为什么将名称属性设置为上传[],而不是上传

2015年5月22日更新 好的,我试着为你调试,我找到了原因

因为您在Dropzone中将uploadMultiple设置为true。因此它发送多个文件,因此$_files['file']['name']是一个数组

解决方案 有两种选择:

  • 更新upload.php文件,以循环通过要上载的$_FILES['file']['name']数组

  • 只需将uploadMultiple设置为false。它应该会起作用


  • 如果您没有看到您上传的文件在您试图上传的目录中,我会考虑确保您对该文件夹的权限是适当的类型。因为您是在本地开发的,所以您可以将它设置为所有人都可以写

    狂欢节:

    命令:


    我现在也不知道。在某个时刻,我迷失在代码中,尝试了一切。我已经删除了它,但仍然不起作用。我更改了它,现在它上载了一张图片,但不是所有的图片。这是一个开始,但仍然不是我想要达到的……嗯,这是从这里开始的。我们已经为您找到了问题。你需要从这里接电话。
        <?php
    
    ini_set('display_errors', 'On');
    error_reporting(E_ALL);
    
    $ds          = DIRECTORY_SEPARATOR;  //1
     
    $storeFolder = '/uploads';   //2
    
    if (!empty($_FILES)) {
    
    if(isset($_FILES['files']['tmp_name']) && is_array($_FILES['files']['tmp_name'])){
         
        foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) {
    
                $tempFile = $_FILES['file']['tmp_name'];          //3 
    
                $targetPath = dirname( __FILE__ ) . $ds. $storeFolder . $ds;  //4
    
                if(!file_exists($targetPath)) {
                    
                    $targetFile =  $targetPath. $_FILES['file']['name'];  //5
    
                    move_uploaded_file($tempFile,$targetFile); //6
                }
    
                else {
                    $targetFile =  $targetPath. $_FILES['file']['name'];  //5
    
                    move_uploaded_file($tempFile,$targetFile); //6
                }
        }
    }
    }
    
    ?> 
    
    $targetFile =  $targetPath. $_FILES['file']['name'];  //5
     
    move_uploaded_file($tempFile,$targetFile); //6
    
    sudo chmod -R a+w /path/to/your/uploads_folder
    
    icacls "D:\path\to\your\uploads_folder" /grant Anouk:(OI)(CI)F /T