注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

ASP无组件上传  

2010-12-13 09:23:37|  分类: Web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//轉
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test</title>
</head>

<body>
<%
Response.Expires=0
if Request.TotalBytes then
  set a=CreateObject("adodb.stream")
  a.Type=1
  a.Open
  a.write Request.BinaryRead(Request.TotalBytes)
  a.Position=0
  b=a.Read
  c=chrB(13)&chrB(10)
  d=clng(instrb(b,c))
  e=instrb(d+1,b,c)

  set f=CreateObject("adodb.stream")
  f.type=1
  f.open
  a.Position=d+1
  a.copyto f,e-d-3
  f.Position=0
  f.type=2
  f.CharSet="GB2312"
  g=f.readtext
  f.Close
  h=mid(g,instrRev(g,"\")+1,e)
  i=instrb(b,c&c)+4
  j=instrb(i+1,b,leftB(b,d-1))-i-2
  if j <1 then
    set f =nothing
    set a =nothing
    response.write "未选择要上传的文件<a href='http://iamgyg.blog.163.com/blog/?'>重新上传</a>"
    response.end
  end if
  f.Type=1
  f.Open
  a.Position=i-1
  a.CopyTo f,j
  f.SaveToFile server.mappath("/images/"& h),2 '上传至“/images/”文件夹中
  f.Close
  set f=Nothing
  a.Close
  set a=Nothing
  response.write "<a href="http://iamgyg.blog.163.com/blog/&Server.URlEncode(h)&">"&h&"</a>"
end if
%>
<script language="javascript">
function checkupload(){
 if(document.upload_form.fe.value ==""){
  alert("未选择要上传的文件");
  return false;
 }
}
</script>
<form name="upload_form" enctype="multipart/form-data" method="post" onsubmit="return(checkupload())">
  <input type="file" name="fe">
 <input type="submit" value="上传" name="B1"></form>
</body>
</html>



<%@ 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(" ") 12;
  var sLength=bLen-(gbCode.substring(0,gbCode.indexOf(" ")).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>
  评论这张
 
阅读(794)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017