Dropzone.js V.4与CakePHP V. 2.5.7

时间:2015-11-03 19:29:19

标签: cakephp dropzone.js cakephp-2.5 cakephp-2.x

我有一个名为index.ctp的dropbox视图:

        echo $this->Form->create('', array('url' => array('controller' => 'vouchers', 'action' => 'uploads'), 'novalidate' => true, 'role' => 'form', 'class' => 'dropzone', 'enctype' => 'multipart/form-data', 'id' => 'my-awesome-dropzone'));
        echo '<div class="dropzone-previews"></div>';
        echo $this->Form->input('Voucher.file', array('type' => 'file', 'label' => false, 'div' => 'fallback', 'class' => false, 'multiple' => true));
        echo $this->Form->end();

在我的控制器'VouchersController.php'中,上传功能如下:

public function uploads() {
    $this->Security->validatePost = false;
    $this->Security->enabled = false;
    $this->Security->csrfCheck = false;
    $data = array(
        'Voucher' => array(
                    'description' => 'xx'
            )
        );
    $this->Voucher->save($data);
}

似乎dropzone.js正常工作。文件似乎已上传,并在预览中设置了复选标记。如果我从Form-&gt;创建更改网址,则预览中会显示错误。这告诉我控制器的URL正在工作。

如果我直接在浏览器中将操作称为“上传”,则说明其正常运行 - &gt;存在凭证表中的新条目(仅用于测试目的)。到目前为止,当动作正在进行时,我将实现文件保存。

但是来自dropzone.js的(ajax)调用无效。我的数据库中没有任何反应。我认为没有调用上传操作,因为在将文件拖放到我的dropzone之后没有数据库条目。

感谢您在这种情况下的任何帮助。

如果您的帮助缺少任何信息,请留下回复。 IVO

1 个答案:

答案 0 :(得分:0)

我自己发现了这个错误。我必须在beforeFilter()中添加以下行:

 $this->Security->unlockedActions = array('action');

这会为SecurityComponent停用action