JSP/JAVA

          JAVA SERVER PAGES

          ASP無組件上傳(經過測試,網絡轉載)

           

          <%@ language="javascript"%>
          <%
          var self = Request.serverVariables("SCRIPT_NAME");
          if (Request.serverVariables("REQUEST_METHOD")=="POST")
          {
                  var oo = new uploadFile();
                  oo.path = "myFile";                        //存放路徑,為空表示當前路徑,默認為uploadFile
                  oo.named = "file";                        //命名方式,date表示用日期來命名,file表示用文件名本身,默認為file
                  oo.ext = "all";                                //允許上傳的擴展名,all表示都允許,默認為all
                  oo.over = true;                                //當存在相同文件名時是否覆蓋,默認為false
                  oo.size = 1*1024*1024;                //最大字節數限制,默認為1G
                  oo.upload();
                  Response.write('<script type="text/javascript">location.replace("'+self+'")</script>');
          }

          //ASP無組件上傳類
          function uploadFile()
          {
              var bLen  = Request.totalBytes;
              var bText = Request.binaryRead(bLen);
              var oo = Server.createObject("ADODB.Stream");
              oo.mode = 3;
                  this.path = "uploadFile";
                  this.named = "file";
                  this.ext = "all";
                  this.over = false;
                  this.size = 1*1024*1024*1024;        //1GB

                  //文件上傳       
                  this.upload = function ()
                  {
                          var o = this.getInfo();
                          if (o.size>this.size)
                          {
                                  alert("文件過大,不能上傳!");
                                  return;               
                          }
                          var f = this.getFileName();
                          var ext = f.replace(/^.+\./,"");
                          if (this.ext!="all"&&!new RegExp(this.ext.replace(/,/g,"|"),"ig").test(ext))
                          {
                                  alert("目前暫不支持擴展名為 "+ext+" 的文件上傳!");
                                  return;
                          }
                          if (this.named=="date")
                          {
                                  f = new Date().toLocaleString().replace(/\D/g,"") + "." + ext;
                          }

                          oo.open();
                          oo.type = 1;
                          oo.write(o.bin);
                          this.path = this.path.replace(/[^\/\\]$/,"$&/");
                          var fso = Server.createObject("Scripting.FileSystemObject");
                          if(this.path!=""&&!fso.folderExists(Server.mapPath(this.path)))
                          {
                                  fso.createFolder(Server.mapPath(this.path));
                          }
                          try
                          {
                                  oo.saveToFile(Server.mapPath(this.path+f),this.over?2:1);
                                  alert("上傳成功!");
                          }
                          catch(e)
                          {
                                  alert("對不起,此文件已存在!");
                          }
                          oo.close();
                          delete(oo);

                  }

                  //獲取二進制和文件字節數
                  this.getInfo = function ()
                  {
                          oo.open();
                          oo.type=1;
                          oo.write(bText);
                          oo.position = 0;                               
                          oo.type=2;
                          oo.charset="unicode";
                          var gbCode=escape(oo.readText()).replace(/%u(..)(..)/g,"%$2%$1");
                          var sPos=gbCode.indexOf("%0D%0A%0D%0A")+12;
                          var sLength=bLen-(gbCode.substring(0,gbCode.indexOf("%0D%0A")).length/3)-sPos/3-6;
                          oo.close();
                 
                          oo.open();
                          oo.type = 1;       
                          oo.write(bText);
                          oo.position=sPos/3;
                          var bFile=oo.read(sLength);
                          oo.close();
                         
                          return { bin:bFile, size:sLength };
                  }

                  //獲取文件名       
                  this.getFileName = function ()
                  {
                          oo.open();
                          oo.type = 2;
                          oo.writeText(bText);
                          oo.position = 0;
                          oo.charset = "gb2312";
                          var fileName = oo.readText().match(/filename=\"(.+?)\"/i)[1].split("\\").slice(-1)[0];
                          oo.close();
                          return fileName;
                  }
                 
                  function alert(msg)
                  {
                          Response.write('<script type="text/javascript">alert("'+msg+'");</script>');
                  }
          }
          %>
          <html>
          <head>
            <title>ASP無組件上傳類</title>
            <meta http-equiv="content-Type" content="text/html; charset=gb2312">
          </head>
          <body>
            <form action="<%=self%>" method="post" enctype="multipart/form-data" onSubmit="return (this.upFile.value!='');">
              <input type="file" name="upFile"/>
              <input type="submit" value="上傳文件"/>
            </form>
          </body>
          </html>

          posted on 2009-06-26 17:55 C雞雞 閱讀(135) 評論(0)  編輯  收藏 所屬分類: Other


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          友情鏈接

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 苏尼特右旗| 伊宁县| 厦门市| 南和县| 格尔木市| 东光县| 长岭县| 安乡县| 株洲县| 西平县| 垦利县| 新巴尔虎左旗| 宜君县| 湛江市| 龙门县| 乌拉特中旗| 克什克腾旗| 略阳县| 丽水市| 治多县| 镇平县| 吐鲁番市| 滨州市| 海门市| 岗巴县| 佛学| 鄂尔多斯市| 揭阳市| 布尔津县| 根河市| 肥东县| 平和县| 黄石市| 宜宾市| 永城市| 于都县| 孝昌县| 右玉县| 延吉市| 满洲里市| 大理市|