用户操作
[即时聊天] [发私信] [加为好友]
符展维ID:fzw98
32725次访问,排名3574好友2人,关注者18
java
fzw98的文章
原创 296 篇
翻译 0 篇
转载 24 篇
评论 20 篇
黑马王子的公告
阿里通网络电话,中国最优秀的网络电话 要向天下名师学习,这里应有尽有。 要向天下名师学习,这里应有尽有。
最近评论
合肥菲利浦斯电子科技:合肥菲利浦斯电子科技

菲利浦斯电子科技(合肥)有限公司,是美国菲利浦斯国际产业集团(Philipus Industry Group Ltd.CO.USA)在中国的市场运营和品牌管理机构,负责全面拓展“菲利浦斯”在中国市场的营销网络,造福中国民众。

针对中国目前严峻的室内空气污染形势,“菲利浦斯”把眼光投向中国市场。美国菲利浦斯国际产业……
合肥菲利浦斯电子科技:合肥菲利浦斯电子科技

菲利浦斯电子科技(合肥)有限公司,是美国菲利浦斯国际产业集团(Philipus Industry Group Ltd.CO.USA)在中国的市场运营和品牌管理机构,负责全面拓展“菲利浦斯”在中国市场的营销网络,造福中国民众。

针对中国目前严峻的室内空气污染形势,“菲利浦斯”把眼光投向中国市场。美国菲利浦斯国际产业……
zhangwenbo:学习了……
ITshu:你好 看了你的SWFupload代码
好像有点东西没给
能不能给个完整版 学习中 多谢了
itshu@163.com
huayiluo:搞得我还没有看懂。。。。厉害
文章分类
收藏
    相册
    真我的风采
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 ajax jsp 无刷新上传文件收藏

    新一篇: 无刷新上传文件以及类Gmail附件添加方式的实现 | 旧一篇: DWR的神奇(一个用DWR做的数据库表查询的示例)


      首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是不可能的。
      而本文实现的文件上传也是无页面刷新的,可以说是一种"类似AJAX"方法。
      开始之前先说两句无关的,其实在ajax出现之前,web应用也可以是无刷新的,那时大多通过IFrame来做到这一点。当然Ajax出现之后,人们一窝蜂地投奔Ajax 的阵营了,iFrame 就乏人问津了。但是用iFrame来实现无刷新上传文件确实一个很好的选择。ps:Ajax技术基本上可以说是由google公司带起来的,但少Gmail中上传文件用的还是 IFrame,所以说使用IFrame来上传文件是最好的选择。
      我在这里这里用的技术是jsp,其实asp,php等也是一样可以这么实现的
      一共两个文件就可实现:index.html 和 upload.jsp,在这里讲解一下,文后会附上源码
      --index.htmlhtml 代码
      <html>
      <body>
      
      <form action="upload.jsp" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" >
      <input type="file" id="file" name="file" style="width:450">
      <INPUT type="submit" value="上传文件"><span id="msg"></span>
      <br>
      <font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传</font>
      <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
      </form>
      
      </body>
      </html>
      
      <script type="text/javascript">
      function callback(msg)
      {
      document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;
      document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>"
      }
      </script>
      index.html 中主要要做的就是写一个 form 和 iframe ,并把 form 的 target 设为 iframe 的名字,注意要把 iframe 设为不可见,其他的都是正常的文件上传的写法,这样刷新的页面就是这个隐藏的 Iframe ,而在 index.html 中是不会有页面刷新的,js的 callback 方法是回调方法。用于清空文件上传框和显示后台信息,注意清空文件上传框的方法,和普通方法有点不一样。
      --upload.jsp
      jsp 代码
      <%@ page language="java" contentType="text/html; charset=gb2312" %>
      <%@ page import="com.jspsmart.upload.SmartUpload"%>
      
      <%
      //新建一个SmartUpload对象
      SmartUpload su = new SmartUpload();
      
      //上传初始化
      su.initialize(pageContext);
      
      // 设定上传限制
      //1.限制每个上传文件的最大长度。
      su.setMaxFileSize(10000000);
      
      //2.限制总上传数据的长度。
      su.setTotalMaxFileSize(20000000);
      
      //3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
      su.setAllowedFilesList("doc,txt,jpg,rar,mid,waw,mp3,gif");
      
      boolean sign = true
      
      //4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
      try {
      su.setDeniedFilesList("exe,bat,jsp,htm,html");
      
      //上传文件
      su.upload();
      //将上传文件保存到指定目录
      su.save("c:\\");
      
      } catch (Exception e) {
      e.printStackTrace();
      sign = false;
      }
      if(sign==true)
      {
      out.println("<script>parent.callback('upload file success')</script>");
      }else
      {
      out.println("<script>parent.callback('upload file error')</script>");
      }
      %>
      upload.jsp 中只要注意最后输出的格式就可以了。其实原理就是输出一段js代码到 iframe 中,然后在iframe中来控制它的父页面。
      OK,至此一个无刷新的页面上传组件就做好了,不要忘了在 WEB-INF/lib 下加上必须的 jspSmartUpload.jar 包。
      需要说明的是使用Iframe来上传,状态栏还是会有刷新的,因为iframe 中的页面刷新了嘛,但是外部页面,就是你所看到的页面是没有刷新的,所以也可以说是类似Ajax上传。


    • FileUpload.rar (15.2 KB)
    • 描述: 无刷新上传文件源码
    • 下载次数: 500

    发表于 @ 2008年01月11日 09:59:00|评论(loading...)|编辑

    新一篇: 无刷新上传文件以及类Gmail附件添加方式的实现 | 旧一篇: DWR的神奇(一个用DWR做的数据库表查询的示例)

    评论

    #huayiluo 发表于2008-06-05 22:45:26  IP: 116.22.151.*
    搞得我还没有看懂。。。。厉害
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 黑马王子