我正在尝试使用cakePHP上传文件。这是观点:
echo $form->create(null, array('action' => 'upload', 'type' => 'file'));
echo $form->file('img');
echo $form->submit('Enviar Imagem');
echo $form->end();
这就是我得到的错误:
警告(2):为foreach()提供的参数无效[CORE / cake / dispatcher.php,第314行]
编辑: cakePHP的调试告诉我这些是发生问题的代码行:
foreach ($_FILES['data'] as $key => $data) {
foreach ($data as $model => $fields) {
foreach ($fields as $field => $value) {
这是调用堆栈:
Dispatcher::parseParams() - CORE/cake/dispatcher.php, line 314
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 118
[main] - APP/webroot/index.php, line 88
我的上传功能目前为空。发生了什么事?
答案 0 :(得分:2)
Dispatcher似乎期望在检查上传数据时存在模型名称。我不知道这是否有充分的理由,或者只是一个疏忽。无论如何,只需使用一个组成的模型名称,没关系。它将通过创建它期望的数据结构来满足Dispatcher。
echo $form->create('File', array(
'url' => array('controller' => 'myController', 'action' => 'upload'),
'type' => 'file'
));
答案 1 :(得分:0)
上传文件时,蛋糕nukes $ _POST并将所有内容放入
$this->params['form']
阵列。 在您的上传视图/控制器中对$ this-> params执行var_dump,它应该在那里
答案 2 :(得分:0)
/app/views/images/upload.ctp
echo $form->create('Image', array('action' => 'upload', 'type' => 'file'));
echo $form->file('img');
echo $form->submit('Enviar Imagem');
echo $form->end();
/app/controllers/images_controller.php
function upload(){
if(!empty($this->data)){
pr($this->data);
}
}
你会发现很多有趣的东西: - )