2015-11-13 24 views
4

我正在使用dropzone.js庫,但它不起作用。無法使用dropzone上傳多個文件

在上傳腳本我算的文件,看看它的工作原理:

$file_count = count($_FILES['file']['name']); 
echo $file_count; 

但只打印1(我試過上傳2+)的所有時光。

HTML:

<form id="propForm" class="" name="" action="upload.php" method="POST" enctype="multipart/form-data"> 
    <div class="option img"> 
     <h4>Imagenes (m&#225;ximo 6):</h4> 
     <div id="dropzone" class="dropzone"> 
     // hidden input is appended here 
     </div> 
    </div> 
    // more inputs 
    <input value="Subir" type="submit" name="submitIT"> 
</form> 

懸浮窗選項:

$('div#dropzone').dropzone({ 
    url: 'upload.php', 
    paramName: "file[]", // The array is initialized here but it's not working 
    acceptedFiles: 'image/*', 
    addRemoveLinks: true, 
    parallelUploads: 6, 
    maxFilesize: 6, 
    maxFiles: 6, 
    autoDiscover: false, 
    autoProcessQueue: false, 
    uploadMultiple: true, 
    hiddenInputContainer: '#dropzone', 

    init: function() { 
     thisDropzone = this; 
     thisDropzone.on("maxfilesexceeded", function(file) { thisDropzone.removeFile(file); }); 
     $("input[type=submit]").click(function(e){ 
      e.preventDefault(); 
      thisDropzone.processQueue(); 
     }); 
     this.on("successmultiple", function(files, response) { 
      alert('works'); 
      $("form#propForm").submit(); 
     }); 
    } 
}); 

upload.php的輸出:

1 // output for echo $file_count; 
Notice: Uninitialized string offset: 0 // $filen = $_FILES['file']['name'][$i]; (inside a for) 

編輯:這是工作,只是將文件上傳第一比形式,所以我得到1和通知。

+0

同樣的問題與我同在了。直到日期我沒有得到任何答案。我會在這裏等待答案。 –

+0

您是否已將[uploadMultiple](http://www.dropzonejs.com/#config-uploadMultiple)選項添加到dropzone? – Jerodev

+0

當然可以。 –

回答

0

我的問題是,我需要爲圖像創建一個自定義文件夾(基於表單的數據),所以它不會工作,因爲它首先上傳文件,然後表單。如果有人也需要這個,我發現這是jquery plugin:它更基本,它只是在預覽區域中轉換輸入類型文件(您必須爲每個文件創建或顯示一個文件,但您可以使用jquery輕鬆完成)但至少它的工作原理是

上面的代碼將只是工作先上傳文件的隊列,然後提交表單數據,所以只要確保上傳腳本將處理這兩個分別:

if ($_FILES['file']['error'] == 0) { 
// move_uploaded_file (single file) 
// or a for($i=0; $i < $file_count; $i++) (multiple files) 
} 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
//filter the data and store it in db 
}