html 无组件上传图片,javascript无组件上传图片类
javascript无组件上传图片类
首先声明本代码是转自其他网站的,版权应该归属其所有者,贴出来的目的是为了和大家一起探讨、共同学习。下面是代码:
default.asp
// —————————————————————————-
// 转发时请保留此声明信息,这段声明不并会影响你的速度!
// —————————————————————————-
// 无术JavaScript上传类 V0.9
// 作者:谢平
// blog: http://birdshover.cnblogs.com
// qq : 19999351
// 2006-6-23
// —————————————————————————-
//提供上传提示消息,供DHTML使用
var msg = Request.QueryString(“msg”);
if(!isNaN(msg))
{
if(msg==0)
msg = “上传成功!”;
if(msg==1)
msg = “上传文件类型错误!”;
if(msg==2)
msg = “上传文件大小超过限制!”;
}
%>
无标题文档
myJsUploadClass.asp
// —————————————————————————-
// 转发时请保留此声明信息,这段声明不并会影响你的速度!
// —————————————————————————-
// 无术JavaScript上传类 V0.9
// 作者:谢平
// blog: http://birdshover.cnblogs.com
// qq : 19999351
// 2006-6-23
// —————————————————————————-
/* 主类:MyMainClass
配置限制属性
配置方法 */
function MyMainClass(MyType,MyLength,FileName)
{
this.PublicStream = new ActiveXObject(“ADODB.Stream”);
this.MyType = MyType;
this.MyLength = MyLength;
this.FileName = FileName;
this.MyCheck = MyCheckMethod;
this.MyCreat = MyCreatMethod;
this.MyRequest = MyRequestMethod;
this.MyLogic = MyLogicMethod;
this.MyStart = MyStart;
}
/* 检查类型及长度限制 */
function MyCheckMethod(MyType,MyLength)
{
var ItemList = this.MyType.split(‘|’);
MyType = MyType.replace(/[/s/r/n]/,’’);
var CheckFlag = 1;
for(var i = 0;i
{
if(ItemList
== MyType)
{
CheckFlag = 0;
break;
}
}
if(this.MyLength*1024 < MyLength)
CheckFlag = 2;
return CheckFlag;
}
/* 保存文件 */
function MyCreatMethod(MyText,MyStartFlag,MyFName)
{
var NewMyFS = new ActiveXObject(“ADODB.Stream”);
NewMyFS.Type = 1
NewMyFS.Mode = 3
NewMyFS.Open
this.PublicStream.Position = MyStartFlag;
this.PublicStream.CopyTo(NewMyFS,MyText.length);
NewMyFS.SaveToFile(Server.MapPath(this.FileName + ‘.’ + MyFName),2);
this.PublicStream.Close();
NewMyFS.Close();
}
/* 取上传内容 */
function MyRequestMethod()
{
var size = Request.TotalBytes;
var binData = Request.BinaryRead(size);
return binData;
}
/* 取数据 */
function MyLogicMethod(binData)
{
var MyType;
var MyLength;
var MyFS = this.PublicStream;
MyFS.Type = 2
MyFS.Open
MyFS.WriteText(binData);
MyFS.Position = 0;
MyFS.Charset = “ascii”;
MyFS.Position = 2;
var text = MyFS.ReadText;
if(text.indexOf(/([sS][cC][rR][pP][tT])/)>0)
return 1;
MyType = text.substring(text.indexOf(“Content-Type: “),text.indexOf(“/n/r”));
MyType = MyType.substring(MyType.indexOf(“/“) + 1,MyType.length-1);
var MyText = text.substring(text.indexOf(“Content-Type: “));
var MyType2 = MyText.substring(MyText.indexOf(“/n/r”)+2,MyText.indexOf(“/n/r”) + 9).replace(/[/s/r/n]/,’’);
MyText = MyText.substring(MyText.indexOf(“/n/r”) + 5);
var MyStartFlag = text.length - MyText.length;
MyText = MyText.substring(0,MyText.indexOf(“—-“));
var boolFlag = 0;
var t = GetTheType(MyType,MyType2);
boolFlag = this.MyCheck(t,MyText.length);
if(t!=””)
if(boolFlag==0)
{
this.MyCreat(MyText,MyStartFlag,t);
return t;
}
else
return boolFlag;
else
boolFlag = 1;
return boolFlag;
}
function GetTheType(MyType,MyType2)
{
var fName = “”;
switch(MyType)
{
case “gif”:
if(MyType2==”GIF89a”)
fName = “gif”;
break;
case “pjpeg”:
if(MyType2.indexOf(“X”)>=0)
fName = “jpg”;
break;
case “octet-stream”:
if(MyType2.indexOf(“Rar”)>=0)
fName = “rar”;
break;
case “msword”:
if(MyType2.substring(0,2)==”PO”)
fName = “doc”;
break;
case “x-xml”:
fName = “xml”;
break;
case “bmp”:
if(MyType2.substring(0,3)==”BMf”)
fName = “bmp”;
break;
}
return fName;
}
/* 主类:MyMainClass程序入口 */
function MyStart()
{
var MyBindData = this.MyRequest();
return this.MyLogic(MyBindData)
}
%>
uploadMethod.asp
// —————————————————————————-
// 转发时请保留此声明信息,这段声明不并会影响你的速度!
// —————————————————————————-
// 无术JavaScript上传类 V0.9
// 作者:谢平
// blog: http://birdshover.cnblogs.com
// qq : 19999351
// 2006-6-23
// —————————————————————————-
/* 相关说明:
支持gif,jpg,rar,doc,xml,bmp类型文件上传
以上类型文件后缀自动识别,不需要填写
如果遇到问题,或者发现问题,请与我联系。
*/
//允许上传文件类型
var MyType = “jpg|gif|rar|doc”;
//允许上传文件大小,单位KB
var MyLength = 100;
//指定文件前缀名称,如果指定目录,也在此处指定。
//例如: var FileName = ford/file1;
var FileName = (new Date()).getTime();
//创建对象,返回信息
var MMC = new MyMainClass(MyType,MyLength,FileName);
var fileType = MMC.MyStart();
//上传成功,可以在这里给出判断
if(isNaN(fileType))
{
//上传后的文件名是 FileName + “.” + fileType
//比如写入数据库操作
//返回状态,需要保留
fileType = 0;
}
Response.Redirect(“Default.asp?msg=” + fileType);
%>
还没有评论,来说两句吧...