无法使用dropzone上传多个文件

时间:2015-11-13 14:37:04

标签: php dropzone.js

我使用了dropzone.js库,但它无效。

在上传脚本中,我会计算文件是否有效:

$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>

Dropzone选项:

$('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和通知。

1 个答案:

答案 0 :(得分:1)

我的问题是我需要为图像创建一个自定义文件夹(基于表单的数据),因此它不会工作,因为它首先上传文件然后上传表单。如果有人也需要这个,我发现这个jquery plugin:它更基本,它只是在预览区域中转换输入类型文件(您必须为每个文件创建或显示一个但是您可以使用jquery轻松完成此操作)但至少可以使用

上面的代码只是首先上传队列中的文件,然后提交表单数据,以确保上传脚本可以单独处理:

import java.util.Scanner;

public class Auction
{
    public static void main(String[] args)
    {
      Scanner keyboard = new Scanner(System.in);
      String price;
      String quantity;

      System.out.print("How much money are you willing to bet on this item?: $");
      price = keyboard.next();


      if(price.matches("[0-9]*") && price.length() <= 5)
      {
         Float f = Float.parseFloat(price);
         System.out.printf("$%5.2f", f);
         System.out.println();
      }

      else if(price.matches("[0-9]*") && price.length() <= 5 && price.contains("."))
      {
         Float f = Float.parseFloat(price);
         System.out.printf("$%5.2f", f);
         System.out.println();
      }

      else
      {
         System.out.println("Invalid input");
      }

      System.out.print("What quantity do you want to bid on?: ");
      quantity = keyboard.next();
      if(quantity.contains("."))
      {
         System.out.println("Invalid input");
      }
    }
}