- <%@ language="javascript"%>
- <%
- var self = Request.serverVariables("SCRIPT_NAME");
- if (Request.serverVariables("REQUEST_METHOD")=="POST")
- {
- var oo = new uploadFile();
- oo.path = "album"; //存放路径,为空表示当前路径,默认为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=utf-8">
- </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>
复制代码 以上代码是我现在用的上传图片代码 , 可是上传完了就还会主页。。有些图片的名字非常乱。。。要一个一个来打字麻烦。。。
麻烦你把这个改到 : 上传成功了以后回到另一个页面比如说001.asp 或者是Html什么的 。 然后那个页面里做一个表格,这里显示文件路径。。(../album/XXX.jpg)等。。。
求你们了,大神。。。。谢谢 |