Jquery会在蛋糕中导致意外的数据库行创建

时间:2013-07-01 20:31:15

标签: php jquery mysql cakephp

我在视图中有这个jquery代码,与我的上传控制器有关:

function screenshot(){

var dataUrl = renderer.domElement.toDataURL("image/png");
$.post("picturepicker", {dataUrl: dataUrl, uploadnumber: 2


 }

}

它成功地将数据发送到此函数:

public function picturepicker(){
        ...

if($this->request->is('post')){
        define('UPLOAD_DIR', WWW_ROOT . 'img/');  // increase validation
        $img = $_POST['dataUrl'];  // Tried $this->request['dataURL'], retrieved 'dataURL' just fine
        $upload = $_POST['uploadnumber']; // tried $this->request['uploadnumber'], did not retrieve 'uploadnumber' 
        $img = str_replace('data:image/png;base64,', '', $img);
        $img = str_replace(' ', '+', $img);
        $data = base64_decode($img);
        $file = UPLOAD_DIR . $upload . '.png';  // UPLOAD_DIR . uniqid() . '.png';
        $success = file_put_contents($file, $data);

        print $success ? $file : 'Unable to save the file.';

哪个工作正常,但每次运行javascript时都会创建一个新的数据库行。由于我没有创建函数,我想,不知怎的,jquery无意中调用了这个函数:

public function upload(){

        if ($this->request->is('post')) {

        //var_dump($this->request->data);
        $this->Upload->create(); 
        ....

但是,我怀疑即使删除了对create函数的所有引用,仍然会添加行。

那么为什么会发生这种情况,我该如何解决呢?我怀疑jquery代码在某种程度上调用了我的函数的所有,并且我需要在其他任何带有post数据的地方放置一个if块。我被告知这不应该是这种情况,也许蛋糕的路由应该归咎于此。或者,我可能错过了蛋糕文档中的一些内容 - 也许蛋糕被设置为每个帖子请求创建一个新的数据库行,我需要告诉它不要以某种方式。

0 个答案:

没有答案