最近我一直在尝试处理Drupal中通过Dropzone.js上传的文件。我没有使用Drupal API表单,只是一个简单的HTML代码来生成Dropzone,但我想使用Drupal函数处理上传的文件(特别是file_save_upload()
)。但是,我无法使用该功能“捕获”上传的文件。
答案 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变量的其他结构。如果有人能详细说明,我会很高兴。不过,我的解决方案有效。