【问题标题】:How to process file uploaded via Dropzone in Drupal?如何在 Drupal 中处理通过 Dropzone 上传的文件?
【发布时间】:2015-01-20 04:30:41
【问题描述】:

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

【问题讨论】:

    标签: drupal-7 dropzone.js


    【解决方案1】:

    由于某种原因,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 变量的其他结构。如果有人能详细说明这一点,我会很高兴。不过,我的解决方案有效。

    【讨论】:

    • 认真的吗?我注意到了同样的情况,但假设这不可能是真的.. 为什么?两者都不同于此处第一条评论中所写的内容:php.net/manual/de/reserved.variables.files.php
    • 非常有用的答案,很快我将尝试在我的一个项目中实现 Dropzone。 Dropzone 似乎是一种非常有趣的上传文件的方式。 Plupload 类似,但似乎 Dropzone 更好。您的 $_FILES 上传方式可能是您服务器的特定配置?
    猜你喜欢
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2010-12-28
    • 2020-01-13
    • 1970-01-01
    • 2011-08-09
    • 2020-04-08
    相关资源
    最近更新 更多