asp 上傳文件的問題!
這是我自己想的.不知道是那裏錯了,還是根本就不對.請各位大哥幫忙指正!<%
dim jpg ===這裏是一個變數取得文件地址
jpg=request.form("tt")
set fso=server.createobject("scripting.filesystemobject")
set e=fso.getfile("jpg")
e.copy ("D:\zx\test",true)
response.write"文件上傳成功"
%>
<%@ language="javascript"%> <% var self = Request.serverVariables("SCRIPT_NAME"); if (Request.serverVariables("REQUEST_METHOD")=="POST"){ var oo = new uploadFile(); oo.path = "pic/"; //存放路径,为空表示当前路径,默认为uploadFile oo.named = "file"; //命名方式,date表示用日期来命名,file表示用文件名本身,默认为file oo.ext = "jpg,gif"; //允许上传的扩展名,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 = "jpg,gif"; this.over = true; 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>上传相片</title> <meta http-equiv="content-Type" content="text/html; charset=gb2312"> <script language="Javascript"> function ValidInput() { var upfile=document.upform.upfile.value; if (trim(upfile)=="") {alert("请选择上传文件!"); document.upform.upfile.focus(); return false; function trim(s) {return s.replace(/(^\s*)|(\s*$)/g,"");} }} </script> </head> <body> <form name="upform" action="<%=self%>" method="post" enctype="multipart/form-data" onsubmit="return ValidInput()"> 上传我的相片:<input type="file" name="upfile" /> <input type="submit" value="上传" style="cursor:pointer;" /> (注意:只能上传格式为 .gif 和 .jpg 的图片) </form> </body> </html>