以下為引用的內(nèi)容:
<%@ language="javascript"%> <% var self = Request.serverVariables("SCRIPT_NAME"); if (Request.serverVariables("REQUEST_METHOD")=="POST") { var oo = new uploadFile(); oo.path = "myFile"; //存放路徑,為空表示當(dāng)前路徑,默認(rèn)為uploadFile oo.named = "file"; //命名方式,date表示用日期來(lái)命名,file表示用文件名本身,默認(rèn)為file oo.ext = "all"; //允許上傳的擴(kuò)展名,all表示都允許,默認(rèn)為all oo.over = true; //當(dāng)存在相同文件名時(shí)是否覆蓋,默認(rèn)為false oo.size = 1*1024*1024; //最大字節(jié)數(shù)限制,默認(rèn)為1G oo.upload(); Response.write('<script type="text/javascript">location.replace("' self '")</script>'); }
//ASP無(wú)組件上傳類 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("文件過(guò)大,不能上傳!"); return; } var f = this.getFileName(); var ext = f.replace(/^. \./,""); if (this.ext!="all"&&!new RegExp(this.ext.replace(/,/g,"|"),"ig").test(ext)) { alert("目前暫不支持?jǐn)U展名為 " 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("對(duì)不起,此文件已存在!"); } oo.close(); delete(oo);
}
//獲取二進(jìn)制和文件字節(jié)數(shù) 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無(wú)組件上傳類</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>
|