2015-11-03 40 views
0

我與Dropbox的一個觀點叫做index.ctp:Dropzone.js V.4 2.5.7

 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' 是上傳功能ALS如下:

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-> create中更改url,那麼它在預覽中出現錯誤。這告訴我,控制器的網址正在工作。

如果我直接在瀏覽器中調用「上傳」操作,它正在工作 - >憑證表中的新條目存在(僅用於測試目的)。當操作到目前爲止,我將執行文件保存。

但dropzone.js中的(ajax)調用不起作用。我的數據庫沒有任何反應。我認爲上傳操作未被調用,因爲在將文件放入我的dropzone後沒有數據庫條目存在。

謝謝你在這種情況下的任何幫助。

如果缺少幫助信息,請留下您的回覆。 Ivo

回答

0

我自己發現了錯誤。我不得不添加以下行beforeFilter()

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

這將禁用SecurityComponentaction