首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

jquery实现gmail那样的直接下传效果

2012-10-07 
jquery实现gmail那样的直接上传效果在GMAIL中,实现文件上传时,是点一个UPLOAD连接时,就直接打开了文件浏览

jquery实现gmail那样的直接上传效果
在GMAIL中,实现文件上传时,是点一个UPLOAD连接时,就直接打开了文件浏览框选择用户的文件的,这个效果跟传统的上传效果有点不同,但实际上,可以很容易去通过jquery去实现这个功能了,下文假设是使用ASP.NET+JQUERY的方法,其他PHP,JAVA的实现原理基本是一样的
1 上传真正的部分,其实还是传统的文件上传框,即:
  <asp:Label ID="lblMessage" runat="server" ForeColor="Green" />
        <asp:FileUpload ID="FileUpload1" runat="server" ClientIDMode="Static" style="display:none;"  />
        <asp:Button ID="btnSubmit" ClientIDMode="Static" runat="server" Text="Submit" OnClick="UploadFileToServer" style="display:none;"   />
   如果是其他语言比如JSP,PHP的话,那么则只需要在
<input type="file"...../>以及button这里加上style="display:none;"
就可以了.

2 增加一个iframe,设置为隐藏:
     <a href="javascript:void(0)" title="Upload File" onclick="OpenFileUpload()">Upload</a>
        <iframe id="frameUpload" name="frameUpload" src="FileUpload.aspx" frameborder="0" width="0" height="0" />

3 JQUERY部分代码
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
        function OpenFileUpload()
        {
            var myFrame = document.getElementById('frameUpload');
            $(myFrame).focus();
            $(myFrame).contents().find("#FileUpload1").click();
            var value = $(myFrame).contents().find("#FileUpload1").val();
            if ( value != '')
            {
                $(myFrame).contents().find("#btnSubmit").click();
              


            }
        }
    </script>

  实际上就是先把IFRAME找出来,然后再把文件上传框FileUpload1找出来,运行其CLICK事件,这样实际上就出现了传统的用户浏览文件框了,再用户选择了要上传的文件后,然后获得其上传的内容,这里放入VALUE,如果VALUE不空,就是有上传文件的话,则JQUERY
找出其真实上传文件程序中的那个"上传"的按钮,调用其CLICK的事件,这样就完成了上传了.

当然,ASP.NET中的后端上传事件如下:
protected void UploadFileToServer(object sender, EventArgs e)
    {
String driver="e:\\aspnet\";
string fileName = FileUpload1.FileName;
        FileUpload1.SaveAs(driver +  fileName);
        lblMessage.Text = FileUpload1.PostedFile.FileName + " uploaded successfully !";
      
    }

热点排行