2016-04-15 152 views
0

我目前使用the structured folder uploader from "nuhil"使dropzone.js可以上传文件夹/完整文件夹结构。Dropzone.js - 上传文件夹结构和单个文件

无论文件夹中有多少个文件夹等,上传文件夹效果很好。但是当我尝试上传单个文件时,它根本无法工作。

这里是我用来上传代码:

<?php 

session_start(); 

$ds = DIRECTORY_SEPARATOR; 
$storeFolder = '../uploads/'.$_SESSION['userid'].'/'; 

if (!is_dir($storeFolder)) { 
    mkdir($storeFolder); 
} 

if (!empty($_FILES)) { 

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

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

    $fullPath = $storeFolder.rtrim($_POST['path'], "/."); 
    $folder = substr($fullPath, 0, strrpos($fullPath, "/")); 

    if (!is_dir($folder)) { 
     $old = umask(0); 
     mkdir($folder, 0777, true); 
     umask($old); 
    } 

    if (move_uploaded_file($tempFile, $fullPath)) { 
     die(); 
    } else { 
     die('e'); 
    } 
} 
?> 

我想我也知道是什么问题,因为我尝试上传文件始终称为undefined,而不是打开的,好像它试图为单个文件创建一个文件夹,但是因为没有,所以它只是试图创建一个没有值的文件夹(请参见行mkdir($folder, 0777, true);)。所以我知道问题是什么,但我不知道如何使它工作。有没有人有一个想法,该怎么做,单个文件的工作呢?

+0

没有人有一个想法? – user5638730

+0

不知道有人吗? – user5638730

+0

我在找同样的答案到目前为止我还没有找到任何东西 –

回答

0

因为当您尝试上传单个文件时,“file.fullPath”未定义,您可以尝试使用file.name,然后通过检查undefined。

this.on("sending", function(file) { 
 
     var name = file.fullPath; 
 
     if (typeof (file.fullPath) === "undefined") { 
 
      name = file.name; 
 
     } 
 
$("#tmp-path").html('<input type="hidden" name="path" value="'+name+'" />') 
 
});