JSP/JAVA

          JAVA SERVER PAGES

          ASP無組件上傳(經(jīng)過測試,網(wǎng)絡(luò)轉(zhuǎn)載)

           

          <%@ language="javascript"%>
          <%
          var self = Request.serverVariables("SCRIPT_NAME");
          if (Request.serverVariables("REQUEST_METHOD")=="POST")
          {
                  var oo = new uploadFile();
                  oo.path = "myFile";                        //存放路徑,為空表示當(dāng)前路徑,默認(rèn)為uploadFile
                  oo.named = "file";                        //命名方式,date表示用日期來命名,file表示用文件名本身,默認(rèn)為file
                  oo.ext = "all";                                //允許上傳的擴(kuò)展名,all表示都允許,默認(rèn)為all
                  oo.over = true;                                //當(dāng)存在相同文件名時(shí)是否覆蓋,默認(rèn)為false
                  oo.size = 1*1024*1024;                //最大字節(jié)數(shù)限制,默認(rèn)為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("目前暫不支持?jǐn)U展名為 "+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);

                  }

                  //獲取二進(jìn)制和文件字節(jié)數(shù)
                  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


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


          網(wǎng)站導(dǎo)航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          友情鏈接

          學(xué)習(xí)網(wǎng)站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 临武县| 宣汉县| 肇州县| 遂川县| 九寨沟县| 大方县| 宁陕县| 海口市| 惠东县| 龙岩市| 杨浦区| 米脂县| 揭西县| 亳州市| 津南区| 荆州市| 临安市| 青河县| 海宁市| 贡觉县| 博客| 滕州市| 合阳县| 曲沃县| 浙江省| 普宁市| 阆中市| 凤翔县| 碌曲县| 镇原县| 竹北市| 赤城县| 宣恩县| 洞头县| 乐清市| 斗六市| 贵阳市| 张家港市| 松江区| 本溪| 遂宁市|