我无法使用Cake PHP中的jQuery Uploadify开始上传文件

时间:2011-09-08 11:47:29

标签: php jquery cakephp uploadify

我已经包含了js和css文件,在前端都正确加载了,但是当我点击

  

<a href="javascript:$('#file_upload').uploadifyUpload();"> Upload </a>

没有任何反应,没有在萤火虫中收到任何错误。

基本上,我无法上传文件。即使uploadify选项“auto”设置为“true”。

如何修复?什么可能是错的?

我的代码:

<script type="text/javascript" src="/js/jquery.min.js"></script>
    <script type="text/javascript" src="/js/jquery.imgareaselect.min.js"></script>

    <script type="text/javascript" src="/js/jquery.fancybox.pack.js"></script>
    <script type="text/javascript" src="/js/uploadify/swfobject.js"></script>
    <script type="text/javascript" src="/js/uploadify/jquery.uploadify.min.js"></script>
    <script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
    $("a.group").fancybox({
        'transitionIn'  :   'elastic',
        'transitionOut' :   'elastic',
        'speedIn'       :   600,
        'speedOut'      :   200,
        'width': 500,
        'height' : 400,
        'overlayShow'   :   false
    });
});

//]]>
</script>
    <script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
    $("#file_upload").uploadify({
        "uploader": "/js/uploadify/uploadify.swf",
        "script": "/uploadify/upload",
        "cancelImg": "/img/uploadify/cancel.png",
        "scriptData": {'type': 1},
        'removeCompleted' : true,
        'folder': '/uploads',
        "auto": true,
        "multi": false,
        "onComplete": function(event, ID, fileObj, response, data) {

        },
        'onError': function (event, ID, fileObj, errorObj) {
            alert(errorObj.type + ' Error: ' + errorObj.info);
        }
    }); 
});
</script>


<input type="file" id="file_upload" name="file_upload" />

<a href="javascript:$('#file_upload').uploadifyUpload();">Upload</a>

由于

4 个答案:

答案 0 :(得分:0)

那不应该是onclick事件吗?

<a href="#" onclick="javascript:$('#file_upload').uploadifyUpload();"> Upload </a>

如果auto设置为true,则文件应在选中后立即自动上传,因此您甚至不需要上传链接/按钮。只需将其置于文档就绪功能中即可。

$("#file_upload").uploadify({
    'uploader'  : '/js/uploadify/uploadify.swf',
    'script'    : '/js/uploadify/uploadify.php',
    'cancelImg' : '/js/uploadify/cancel.png',
    'folder'    : '/some_folder',
    'fileExt'   : '*.jpg;*.jpeg;*.gif;*.png',
    'auto'      : true});

答案 1 :(得分:0)

我会假设 - 因为你使用jQuery代码应该如下:

<script type="text/javascript">
    $().ready(function() {
        $('#upload').click(function() {
            $('#file_upload').uploadifyUpload();
        });
    });
</script>

<a href="" id="upload">Upload</a>

这更符合jQuery通常的工作方式。

答案 2 :(得分:0)

您是否可能需要使用完整的表单标签? 要自动生成multipart / form-data,您可以执行以下操作:

<?php $this->Form->create('Document', array('type' => 'file')); ?>

我不知道uploadify是否需要表单标签,但如果这里的演示显示了一个完整的表单标签,您的测试脚本也应该有一个表单标签,这似乎是合乎逻辑的。

http://uploadify.wdwebdesign.com.br/ 这是3.0演示 - 可能比您的版本更新,但两个演示中的代码都显示了完整的表单。同样,您所显示的代码不会。

答案 3 :(得分:0)

也许你可以试试这个:

href="javascript:$('#custom_file_upload').uploadifyUpload($('.uploadifyQueueItem').last().attr('id').replace('custom_file_upload',''))

来自官方演示 uploadifyupload