2016-04-15 70 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+'" />') 
 
});