JAVA认证:JSP无刷新文件上传的实现
来源:优易学  2011-9-12 10:17:31   【优易学:中国教育考试门户网】   资料下载   IT书店
  首先我们需要一个上传的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();
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训