网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > JSP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.jsp中的数据库编程.
.用定制标签库和配置文件实现对JS.
.关于JSP中文问题的解决方法.
.关于JSP中基于Session的在线用户.
.JSP应用语法详解大全 (3).
.jsp从数据库取得数据作为下拉菜单.
.浅谈4种类型的JDBC驱动程序 .
.JSP实现论坛树型结构的具体算法.
.建立JSP操作以提高数据库访问的效.
.用JSTL实现JSP应用程序快速开发.
.打开页面就是全屏的方法.
.改变JSP的文件后缀.
.通过JDBC连接Oracle的十大灵活技.
.JSP中文乱码问题解决方法小结.
.在jsp程序中使用com组件.
.利用缓冲技术提高JSP程序的性能和.
.JSP实现浏览器关闭cookies情况下.
.JSP+MySQL 无法插入中文问题(Dat.
.如何将网页数据输出为Excel或Wor.
.Java 中对文件的读写操作之比较.

jsp无刷新文件上传的实现

发表日期:2007-3-31


本想利用AJAX实现无刷新文件上传,后来发现不易实现,在网上找了很久,终于找到一个“伪AJAX”的实现方式,现在发出来我实际的代码,一飨读者。
首先我们需要一个上传的HTML或者JSP文件,如下:
<FORM METHOD="POST" ACTION="../servlet/FileUploadServlet" enctype="multipart/form-data" target="hidden_frame" onSubmit="showmsg();" style="margin:0;padding:0">
                <input type="file" name="sfile" style="width:450">
                <input type="hidden" name="act" value="upload">
                <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> 
其中FORM的TARGET属性[b]非常重要[/b],把FORM的ACTION提交到一个隐藏的IFRAME中去执行,然后返回的时候在MSG的地方填入操作即可,SERVLET的类似代码如下:
 public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{
  PrintWriter out = response.getWriter();
  response.setCharacterEncoding("utf-8");
  response.setHeader("Charset","utf-8");
  response.setHeader("Cache-Control", "no-cache");

  String filepath="",msg="",ext="";
  SmartUpload su = new SmartUpload();
  boolean succ=true;
                  。。。。。。
  try{
   su.initialize(getServletConfig(),request,response);
   su.setMaxFileSize(102400000);
   su.setTotalMaxFileSize(102400000);
   su.setAllowedFilesList(mediaExt+","+flashExt+","+imgExt);
   su.setDeniedFilesList("exe,bat,,");
   su.upload();
   for (int i=0;i<su.getFiles().getCount();i++)
   {
    com.jspsmart.upload.File file = su.getFiles().getFile(i);
 
    if (file.isMissing()) continue;
 
    String fileName=UploadFileUtils.returnRandomFileName(file.getFileExt());
    ext=file.getFileExt().toLowerCase();
                 。。。。。。。。。。。
    
    msg="<a href=\"#\">上传成功!</a>";
   }
  }catch(SmartUploadException sue){
   succ=false;
   msg="<font color=red>上传失败:请检查文件扩展名或文件大小!</font>";
  }catch(Exception ex){
   succ=false;
   msg="<font color=red>上传失败:请检查文件扩展名或文件大小!</font>";
   ex.printStackTrace();
  }
    msg=Escape.escape(msg);
    if(succ)
     out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');parent.backCallIframe('"+Escape.escape(ext)+"','"+Escape.escape(filepath)+"')");
    else
     out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');");
 out.close();
 }

上一篇:jsp中获取客户端的浏览器和操作系统信息 人气:6590
下一篇:在jsp环境中配置使用fckeditor 人气:5302
浏览全部无刷新文件上传的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐