侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

iframe模拟无刷新上传文件

2024-05-16 星期四 / 0 评论 / 0 点赞 / 93 阅读 / 2114 字

以前上传文件用form表单上传,虽然可以用,但是会闪一下,有点丑,就去找ajax上传文件的插件,看着有点麻烦,就想换别的方法,看到还有用iframe的,就自己试着上传,最后成功了.现在把它写出来,希望

    以前上传文件用form表单上传,虽然可以用,但是会闪一下,有点丑,就去找ajax上传文件的插件,看着有点麻烦,就想换别的方法,看到还有用iframe的,就自己试着上传,最后成功了.现在把它写出来,希望能给需要的人一点帮助.

我做的是java web项目,前端是 jsp 页面.

<form id="imgForm" enctype="multipart/form-data" action="url" method="post"  target="image_iframe">


     <input type="file" onchange="uploadFile(this)" id="file" name="file" >
</form>

 

<iframe id="image_iframe" name="image_iframe" style="display:none;">
 </iframe>

重点在  iframe 的target 属性,我忘记它对应的是iframe 的id 还是name.总之一样就好.一定要写!!!!

当文件选定,并且符合条件之后,就可以  $("#imgForm").submit() .开始form表单提交.由于有iframe,所以form表单里的东西会在iframe中上传,页面不会闪.

在后台,和用form表单上传一样,进行文件的读写.当文件复制成功之后.需要得到:

PrintWriter out = response.getWriter(); 

out.println("<script>parent.callbackHeadImg('"+url+"')</script>");  

在iframe中,就会输出 <script>parent.callbackHeadImg(url)</script>

他就会去调用你文件上传那里的  function callbackHeadImg(msg){

XXXX

}这个方法.

我用的java,springMVC框架.方法返回值是Object 类型,我返回null,效果如下图

才成功调用了callbackHeadImg函数

其他的返回值,如果是个具体路径,路径所在页面就会出现在上传的iframe中,如下图.

希望能帮到需要的人.

 

 

 

 

 

广告 广告

评论区