java无组件上传_ASP无组件上传(经过测试,网络转载)

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('');

}

//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无组件上传类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值