iframe的使用技巧

    对于上传文件,通常前台上传文件至后台时,后台是一个 Servlet 来处理请求,而 Servlet 处理请求中,通常会有返回页面,所以如果要做到界面显示,而不会让用户感觉有因为上传而产生的刷屏的样子,应该做一个类似于 AJAX 的表现,来进行局部刷新,不过 AJAX 本身而言,并不支持 form post 方式的文件提交,所以不能用 AJAX 来进行上传文件的局部刷新。通常比较好的一种做法是在你的网页中内嵌一个 iframe ,在 iframe 里面做一个 form ,以进行文件上传的提交。具体示例代码见下。

文件名: uploadtest.html

< html >

    < head >

        < title > 文件上传 </ title >

        < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >

    </ head >

    < body >

        < p >

            < b > 文件上传 </ b >

        </ p >

        < br />

       < br />

        < div id = "fileSendDiv" >

                  < iframe width = "100%" height = "35" frameborder = "0" id = "show" name = "show" src = "uploadfile.jsp" scrolling = "no" style = "frameborder:0" align = "left" ></ iframe >

       </ div >

       < br />

       < br />

       < br />

       < br />

       < p >

            < b > 刷新的是 iframe ,父页面不会改变 </ b >

        </ p >

    </ body >

</ html >

该页面注意的是 iframe 的使用,刷新的会是 iframe iframe 指向了一个新的文件,文件名叫: uploadfile.jsp ,这个才是真正的上传文件的内容表现,你可以将这个文件作为工具类型的文件,只要在上传文件中通过 iframe 引用这个文件即可( uploadtest.html uploadfile.jsp 处于同一个目录中)。

上传显示文件代码如下:

文件名: uploadfile.jsp

<%@ page language = "java" import = "java.util.*" pageEncoding = "UTF-8" %>

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >

< html >

    < head >

       < title > 上传文件 </ title >

       < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >

       < meta http-equiv = "pragma" content = "no-cache" >

       < meta http-equiv = "cache-control" content = "no-cache" >

       < script language = "JavaScript" type = "text/javascript" >

       function upload()

       {     

           var filename = document.tab.uploadfile.value;

           if (filename== '' )

           {

               alert( " 没有选择要上传的文件,请选择 !" );

               return ;

           }

          

           document.tab.action = "FileUpload" ; // 提交上传为文件时,所指向的 servlet 配置的 Servlet 动作

           document.tab.target= "show" ; // 指向 iframe ID ,即刷新页面返回时所指的地方。

           document.tab.submit();     

          

       }

    </ script >

    </ head >

    < body style = "margin:0px;" >

       < form name = "tab" method = "post" action = "" enctype = "multipart/form-data" >

           < input type = "file" id = "uploadfile" name = "uploadfile"  style = "border:1px solid black;" >

           < input type = "button" name = "up" value = " 上传 " style = "border:1px solid black;height:20px;" onClick = "upload()" >

       </ form >    

    </ body >

</ html >

需要明确的是该上传文件当调用 upload 之后,其返回所指向的是 ID show 表单,查看 uploadtest.html 中的 iframe 发现,指的就是这个 iframe ID ,所以说当后台的 Servlet 有返回时,刷新的也只是这个 iframe ,而不会影响整个父页面的显示效果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值