<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <% var systempsw="123321"; var pwd; psw=Request.QueryString("psw"); if(psw==systempsw) { if (Request.serverVariables("REQUEST_METHOD")=="POST") { var oo = new uploadFile(); oo.path = ""; //存放路径,为空表示当前路径,默认为uploadFile oo.named = "file"; //命名方式,date表示用日期来命名,file表示用文件名本身,默认为file oo.ext = "all"; //允许上传的扩展名,all表示都允许,默认为all oo.over = false; //当存在相同文件名时是否覆盖,默认为false oo.size = 1*1024*1024; //最大字节数限制,默认为1G var fname= oo.getFileName(); oo.upload(); Response.write("Stored in: "+ fname); Response.End(); } } //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(''); } } %> ASP无组件上传类