操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

jsp无刷新文件上传的实现

2007-9-17 网友评论 0 条 点击进入论坛

  本想利用AJAX实现无刷新文件上传,后来发现不易实现,在网上找了很久,终于找到一个“伪AJAX”的实现方式,现在发出来我实际的代码,一飨读者。

  首先我们需要一个上传的HTML或者JSP文件,如下:

  支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上传

  其中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

  {

  com.jspsmart.upload.File file = su.getFiles().getFile(i);

  if (file.isMissing()) continue;

  String fileName=UploadFileUtils.returnRandomFileName(file.getFileExt());

  ext=file.getFileExt().toLowerCase();

  。。。。。。。。。。。

  msg="上传成功!";

  }

  }catch(SmartUploadException sue){

  succ=false;

  msg="上传失败:请检查文件扩展名或文件大小!";

  }catch(Exception ex){

  succ=false;

  msg="上传失败:请检查文件扩展名或文件大小!";

  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();

  }

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46430 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail