javascript无组件上传图片类

javascript无组件上传图片类

首先声明本代码是转自其他网站的,版权应该归属其所有者,贴出来的目的是为了和大家一起探讨、共同学习。下面是代码:

default.asp
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
//        ---------------------------------------------------
//        转发时请保留此声明信息,这段声明不并会影响你的速度!
//        ---------------------------------------------------
//                                无术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 = "上传文件大小超过限制!";
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form method="post" action="UploadMethod.asp" enctype="multipart/form-data">
<label>
<input type="file" name="file1" /> <span id="MyMSG"></span>
</label>
<br />
<!--input type="text" name="filename" value="default filename"/-->
<br />
<input type="submit" value="Submit" οnclick="return MyMSGText();"/>
<!--input type="reset" value="Reset"/-->
</form>  
<script language="JavaScript" type="text/javascript">
<!--
        var msg = "<%= msg %>";
        MyMSG.innerText = msg;
        MyMSG.style.color = "red";
       
        function MyMSGText()
        {
                MyMSG.innerText = "正在上传!";
        }
//-->
</script>
</body>
</html>

myJsUploadClass.asp
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="936"%>
<%
//        ---------------------------------------------------
//        转发时请保留此声明信息,这段声明不并会影响你的速度!
//        ---------------------------------------------------
//                                无术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<ItemList.length;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
<!--#include file="MyJSUploadClass.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);
%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值