0

下面的代码使用 AjaxUpload.2.0.min.js 将文件上传到服务器

但是您需要多次单击“添加文件”按钮才能显示操作系统窗口(选择要上传的文件的位置),而不是单击一次。

此外,如果您在链接中单击一次,然后将鼠标移出红色区域并单击(在#upload_files 之外),最后您在链接中单击返回,它可以工作,操作系统窗口打开.. 但是为什么我必须这样做吗?AjaxUpload 最初不会绑定在 .livequery 调用中吗?那么,我该如何绑定呢?

请专注于这一点,在操作系统窗口上通过鼠标的第一次点击显示。其余的编程在我的服务器上运行良好。

.js 被上传到 github 以使代码易于测试,但实际上它们在我的机器中。

非常感谢

<head>
<style>
#upload_files{color: #fff; background:#F32201; border:1px solid #7E9DB9; padding:2px;}
</style>

<script type="text/javascript" src="https://gist.github.com/raw/6dd585079502f138d87e/7c243080233761859937d52195b670602731a379/jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="https://gist.github.com/raw/eeb2fe78f63ab80b626d/5be66e749b19fbb5b7c8814bf72a98c083f2aaaf/jquery.livequery.min.js"></script>

<script type="text/javascript" src="https://gist.github.com/raw/826bff2445c8533dd7fc/797734455959ef27796b6770c95a7b39049ae6e9/AjaxUpload.2.0.min.js"></script> 

<script type="text/javascript">
      $(document).ready(function() {

    function uploadFiles(){   
        new AjaxUpload('#upload_files', {
            action: 'whereToUploadInServer.php',
        });     

    }//end uploadFiles

           $("#upload_files").livequery("click", function(e){
        e.preventDefault();
        uploadFiles();
        //debugger ;
    }); 
}); //end document ready

    </script>


  </head>
  <body>
       <div><a href="#" id="upload_files">Add File</a></div> <br>

  </body>
4

1 回答 1

1

据我所知,根据 Github 上的文档,此时 ajaxupload 组件尚未完全运行。作者建议改用新的 qq.FileUploader 插件。

这是一个在单击 div 元素后立即显示文件对话框的示例。

jsFiddle 示例

希望能帮助到你。

于 2010-11-28T21:32:50.730 回答