0

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

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

无论如何,到目前为止一切顺利......我有我的 div 可以打开一个文件浏览器。

The problem is that when a file is selected the plugin is supposed to auto-submit the form to an action which you define. 这似乎没有正确发生,我认为这可能与我的表单动作的目标有关。

因此,在我看来,要添加一个新的“瓷砖”,我有:

<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=>uploadImage。看起来像:

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

请注意,我也尝试回显“WoHoo”等,但没有任何区别。

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

这不会发生。有谁知道为什么。就像我说的,我认为可能与表单动作有关,但我已经尝试了所有我能想到的方法。

该插件的实际 JS 并不大,可能会在此处发布所有内容。如果有善良的灵魂怜悯并想帮助我,它可以在我上面发布的链接上找到。

4

1 回答 1

0

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

但是,由于在这种情况下您没有为您的操作使用视图文件,您还应该禁用“自动渲染”;

$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

于 2013-04-11T23:24:56.993 回答