用iframe实现灵活的上传文件

用iframe其实还是可以做不少效果的,比如想做这样一饿效果:用户点某个连接,然后弹出文件上传框,之后点选了文件后,可以马上上传文件,而不象平时那样,选好文件好,还要按“上传”。是这样实现的,用IFRAME,

首先在index.aspx中这样写
<script type="text/javascript" language="javascript">
    function Browse()
    {
        var ifUpload;
        var confirmUpload;
        ifUpload = ifu.document.form1;
        ifUpload.myFile.click();
    }    
 </script>
    <title>File Upload</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lblStart" runat="server"></asp:Label>
        <a href="#" OnClick="javascript:Browse();">增加文件</a>
        <iframe src="Upload.aspx" frameborder="0" id="ifu" name="ifu"></iframe>
    </div>
    </form>
这里,有一个iframe,指向upload.aspx,当用户点“增加文件”时,首先是调用javascript的browse()了。在这里,先看下upload.aspx先

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        string strFileName;
        string strFileExtension;
        int intLastIndex;
        if (Request.Files.Count == 1)
        {
            try
            {
                strFileName = myFile.PostedFile.FileName;
                intLastIndex = strFileName.LastIndexOf("//");
                if (intLastIndex > 0)
                {
                    intLastIndex += 1;
                    strFileName = strFileName.Substring(intLastIndex, (strFileName.Length - intLastIndex));
                    strFileExtension = strFileName.Substring(strFileName.Length - 4, 4);
                    if (strFileExtension == ".txt")
                    {
                        myFile.PostedFile.SaveAs(Server.MapPath(".") + "//" + strFileName);
                        lblMsg.Text = strFileName + " Uploaded Sucessfully!";
                    }
                    else
                    {
                        lblMsg.Text = "Only Text File (.txt) can be uploaded.";
                    }
                }
                else
                {
                    lblMsg.Text = "Please Select a File!";
                }
            }
            catch (Exception exc)
            {
                lblMsg.Text = exc.Message;
            }
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<script type="text/javascript">
    function SubmitForm()
    {
      
        document.form1.submit ();
    }
</script>
    <title>Upload</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="file" runat="server" id="myFile" name="myFile" style="visibility:hidden;" />
        <input type="button" runat="server" id="btnSubmit" name="btnSubmit" οnclick="javascript:SubmitForm();" style="visibility:hidden;" />
        <br /><asp:Label ID="lblMsg" runat="server" ForeColor="red" Font-Size="Medium" Font-Bold="true"></asp:Label>   
    </div>
    </form>
</body>

这里,同样也有一个文本上传框,但style是hidden,名称是myFile,而那个传统的上传按钮,这里叫btnSUbmit,而其onclick事件
submitform里,则提交了表单,同时load()里则是实际的上传代码。
    同样,在main.aspx中,ifUpload.myFile.click();其实是调用了upload.aspx中的那个上传文件框,首先打开了这个文件框,然后当选定文件后,则通过
ifUpload.btnSubmit.click();实际上调用了那个“上传”的按钮了,从而完成整个过程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值