标题:大家好,问一个问题
取消只看楼主
Godaiwei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-15
结帖率:0
已结贴  问题点数:20 回复次数:1 
大家好,问一个问题
现在我已经在一个asp页面中将文件上传,然后要在第二个页面第二个表单中提交文件名称,日期等等由自己输入的信息到数据库,现在我想在提交完文件后跳到第二个页面,然后再在提交第二个表单的时候将上一个页面上传文件后文件在服务器上面的路径一起提交到数据库中去,数据库表中有“文件”项对应文件在服务器上面的路径,属性是超链接,请问我该怎么做,谢谢!我的邮箱是daiwei_xmu@,希望高手不吝赐教。

[ 本帖最后由 Godaiwei 于 2012-3-20 13:41 编辑 ]
搜索更多相关主题的帖子: 数据库表 上传文件 服务器 超链接 信息 
2012-03-15 13:33
Godaiwei
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-15
得分:0 
回复 2楼 ysf0181
文件上传.asp 网上下的,可以上传文件到文件夹
<%@ language="javascript"%>
<%
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('<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=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>
提交表单到数据库.asp 参照网上的代码写的,可以提交表单到access数据库
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>

<body>
<form method="POST" action=提交.asp>
    <p><input type="text" name="T1" size="20"><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
</body>

</html>


提交.asp 也就是 提交表单到数据库.asp 页面form的action,负责提交表单到数据库
<%
dim Con
set Con=server.CreateObject("ADODB.Connection")
Con.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("戴玮测试数据库.mdb")
Con.open
  set rs = server.createobject("adodb.recordset")
  strSql = "select * from 戴玮测试表格"
  rs.open strSql,con,1,3  
    rs.addnew
    rs("文件名")=request.form("T1")
    rs("文件")=path
    rs.update
  rs.close
  set rs = nothing
  Con.close
  set Con = nothing  
%>
现在的问题是,如何在第一个页面 文件上传.asp 上传文件后跳转到第二个页面 提交表单到数据库.asp ,并在第二个页面中将上传的文件在服务器上面的路径和表单内容一起提交到数据库里面去,数据库表有专门的对应路径的项“文件”,谢谢了!

[ 本帖最后由 Godaiwei 于 2012-3-20 13:51 编辑 ]
2012-03-16 17:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-363258-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.070182 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved