程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp無刷新文件上傳的實現

jsp無刷新文件上傳的實現

編輯:關於JSP

本想利用ajax(動態網站靜態化)實現無刷新文件上傳,後來發現不易實現,在網上找了很久,終於找到一個“偽ajax(動態網站靜態化)”的實現方式,現在發出來我實際的代碼,一飨讀者。
首先我們需要一個上傳的HTML或者jsp(SUN企業級應用的首選)文件,如下:
<FORM METHOD="POST" ACTION="../servlet/FileUploadServlet" enctype="multipart/form-data" target="hidden_frame" onSubmit="showmsg();" >
                <input type="file" name="sfile" >
                <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屬性非常重要,把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.jsp(SUN企業級應用的首選)smart.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();
 }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved