ASP实例:一个简单的ASP无组件上传类

2013 年 1 月 15 日5450

  简单的ASP无组件上传类,发出来让大家看看。可以做做实验!
  
  以下为引用的内容:
  
  <>
  
  <%
  
  varself=Request.serverVariables("SCRIPT_NAME");
  
  if(Request.serverVariables("REQUEST_METHOD")=="POST")
  
  {
  
  varoo=newuploadFile();
  
  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('<scripttype="text/javascript">location.replace("'+self+'")</script>');
  
  }
  
  //ASP无组件上传类
  
  functionuploadFile()
  
  {
  
  varbLen=Request.totalBytes;
  
  varbText=Request.binaryRead(bLen);
  
  varoo=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()
  
  {
  
  varo=this.getInfo();
  
  if(o.size>this.size)
  
  {
  
  alert("文件过大,不能上传!");
  
  return;
  
  }
  
  varf=this.getFileName();
  
  varext=f.replace(/^.+./,"");
  
  if(this.ext!="all"&&!newRegExp(this.ext.replace(/,/g,"|"),"ig").test(ext))
  
  {
  
  alert("目前暂不支持扩展名为"+ext+"的文件上传!");
  
  return;
  
  }
  
  if(this.named=="date")
  
  {
  
  f=newDate().toLocaleString().replace(/D/g,"")+"."+ext;
  
  }
  
  oo.open();
  
  oo.type=1;
  
  oo.write(o.bin);
  
  this.path=this.path.replace(/[^/\]$/,"$&/");
  
  varfso=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";
  
  vargbCode=escape(oo.readText()).replace(/%u(..)(..)/g,"%$2%$1");
  
  varsPos=gbCode.indexOf("%0D%0A%0D%0A")+12;
  
  varsLength=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;
  
  varbFile=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";
  
  varfileName=oo.readText().match(/filename="(.+?)"/i)[1].split("];
  
  oo.close();
  
  returnfileName;
  
  }
  
  functionalert(msg)
  
  {
  
  Response.write('<scripttype="text/javascript">alert("'+msg+'");</script>');
  
  }
  
  }
  
  %>
  
  <html>
  
  <head>
  
  <title>ASP无组件上传类</title>
  
  <metahttp-equiv="content-Type"content="text/html;charset=gb2312">
  
  </head>
  
  <body>
  
  <formaction="<%=self%>"method="post"enctype="multipart/form-data"onSubmit="return(this.upFile.value!='');">
  
  <inputtype="file"name="upFile"/>
  
  <inputtype="submit"value="上传文件"/>
  
  </form>
  
  </body>
  
  </html>
  
  

点这里查看更多ASP教程

0 0