如何处理Drupal中Dropzone上传的文件?

时间:2015-01-20 04:30:42

标签: drupal-7 dropzone.js

最近我一直在尝试处理Drupal中通过Dropzone.js上传的文件。我没有使用Drupal API表单,只是一个简单的HTML代码来生成Dropzone,但我想使用Drupal函数处理上传的文件(特别是file_save_upload())。但是,我无法使用该功能“捕获”上传的文件。

1 个答案:

答案 0 :(得分:3)

由于某些原因,Dropzone生成的$_FILES数组如下所示:

Array   (
    [files] => Array
        (
            [name] => 5bcb9c.jpg
            [type] => image/jpeg
            [tmp_name] => /private/var/tmp/phpgZHmT8
            [error] => 0
            [size] => 273794
        )   )

但是,Drupal的函数file_save_upload()正在等待此结构中的$ _FILES数组:

Array
(
    [files] => Array
        (
            [name] => Array
                (
                    [files] => 5bcb9c.jpg
                )

            [type] => Array
                (
                    [files] => image/jpeg
                )

            [tmp_name] => Array
                (
                    [files] => /private/var/tmp/php4ebqBs
                )

            [error] => Array
                (
                    [files] => 0
                )

            [size] => Array
                (
                    [files] => 210075
                )

        )

)

所以我要做的就是更改$ _FILES变量(是的,我知道!)所以它匹配Drupal所需的结构。它现在有效,虽然我不太明白为什么Dropzone会生成另一个结构,而Drupal需要$ _FILES变量的其他结构。如果有人能详细说明,我会很高兴。不过,我的解决方案有效。