一键上传(ocupload)jquery插件和cakephp 2

时间:2013-04-11 22:57:22

标签: php javascript jquery ajax cakephp

我正在尝试使用jquery http://code.google.com/p/ocupload/wiki/Documentation的“一键上传”插件

它是一个插件,可以将普通输入类型=“文件”更改为您想要的任何元素,例如div,因此当您单击此div时,将打开文件浏览器,允许您选择要上载的文件。然后它提交一个隐藏的形式somewho涉及一个iframe,我相信这个概念是众所周知但不是我。

无论如何,到目前为止一切都那么好......我有我的div打开文件broswer。

问题是,当选择文件时,插件应该自动将表单提交给您定义的操作。这似乎没有正确发生,我认为这可能与我瞄准表格的行为有关。

所以在我看来添加一个新的“瓷砖”我有:

<div id="TileImageUpload">Upload an image</div>

然后将javascript附加到div:

$(document).ready(function(){
    //one click image upload
    var myUpload = $('#TileImageUpload').upload({
            name: 'file',
            action: '../tiles/uploadImage',
            enctype: 'multipart/form-data',
            params: {upload:'Upload'},
            autoSubmit: true,
            onSubmit: function() {
                alert('submitted');
                $('#upload_status').html('').hide();
                loadingmessage('Please wait, uploading file...', 'show');
            },
            onComplete: function(response) {
                alert(response);
            },
            onSelect: function() {}
    });



});

在上面,action参数意味着指向我的TilesController action =&gt; uploadImage。看起来像:

function uploadImage() {
    if ($_POST["upload"]=="Upload") { 
        return 'wooHoo';
    } else {
        return 'BooHoo';
    }
}

注意我也尝试回复'WoHoo'等但没有什么区别。

所以基本上如果有一个成功的表单帖子那么它应该将WooHoo返回到javascript,然后应该提醒它。

这没有发生。有谁知道为什么。就像我说的那样,我认为可能与表单行为有关,但我已经尝试过,我可以思考。

插件的实际JS并不大,可能会在这里发布所有内容。它可以在我上面发布的链接上找到,如果某种灵魂怜悯和幻想帮助我。

1 个答案:

答案 0 :(得分:0)

你不应该使用'return',而是尝试'echo'。

但是,由于在这种情况下您没有使用视图文件进行操作,因此您还应禁用“autoRender”;

$this->autoRender = false;

否则CakePHP将抛出'未找到视图'异常。

此外,要获取CakePHP中发布的数据,请使用Request对象;

例如:

$this->autoRender = false;

if($this->request->is('post')) {
    echo 'data is posted. This is the content of the request:';
    debug($this->request->data);
} else {
    echo 'no form is posted';
}

最后,如果您想返回JSON数据,请参阅手册的这些部分

http://book.cakephp.org/2.0/en/controllers/request-response.html#cakeresponse

http://book.cakephp.org/2.0/en/views/json-and-xml-views.html