注册 登录
编程论坛 ASP技术论坛

asp 上傳文件的問題!

xunmi_love 发布于 2008-02-13 18:48, 948 次点击
這是我自己想的.不知道是那裏錯了,還是根本就不對.請各位大哥幫忙指正!

<%
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"文件上傳成功"
%>
5 回复
#2
xunmi_love2008-02-13 18:58
那位大哥送小弟代碼,
小弟在此謝過!
#3
hmhz2008-02-15 14:23
上传文件是个数据源的传送过程,所以一定会有二进制的存在,否则就不是传送,而是建立一个空的文件而已
代码有,只是很复杂,怕你看不懂不知道如何修改
程序代码:
<%@ 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>
#4
xunmi_love2008-02-15 15:30
謝謝


有難度!
#5
xunmi_love2008-02-15 15:32
能幫我注釋就下嗎!????
#6
nevermind1232008-02-28 17:05
求救:如何调用新闻中的图片
给单位内部做了个新闻发布网站,上传几条新闻其中一条有图片,调用的时候用了一条简单的数据文件调用语句,有图片的新闻显示正常,没有图片的则显示出空图片的位置,而且很难看,一个大叉,怎么解决这个问题。ASP+ACCESS
1