在aspWebServer服务器下可用的无组件上传代码

发布时间:2017年10月23日 作者:未知 查看次数:1770

测试,上传成功

ASP无组件上传

https://jingyan.baidu.com/article/c35dbcb0c86a2f8916fcbc80.html



<!--说明 : ASP无组件上传系统 在SwsAspWebServer2.4 + XP 系统中测试成功 -->


<%@ 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("%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>





版权所有!www.sieye.cn
E.Mail:sieye@sohu.com QQ:66697110