回 帖 发 新 帖 刷新版面

主题:如何上传文件?

我想制作一个类似于博客的动态网页。
当网友注册时,可以上传自己的个人头像。同时,服务器端数据库进行保存。
我想知道,如何才能实现图片上传功能呢?并且上传后,路径如何设置?

回复列表 (共3个回复)

沙发

你可以去下载一个博客源码,然后看看。
直接问别人一般很少人回答你的,因为上传图片需要很长一段代码。

板凳

文件上传,如果想设置文件的大小,需要用到REQUEST的TotalBytes属性:
  TotalBytes:用于取得客户端响应的数据的字节大小.语法为:Counter = Reuqest.TotalBytes
 (1)首先设计一个表单:
<form name="form1" action="Img_info.asp" method="post">
<input name="Img_Info" type="text" class="Style_upload" onBlur="Mysubmit()" value="<%=Session("Img_Info")%>" size="40">
</form>
<form name="form" action="upload.asp" enctype="multipart/form-data" method="post">
 <input name="file1" type="file" class="Style_upload" size="30"></td>
 <input name="submit" type="submit" class="Style_button_del" value="上传图片">    
    <input name="myclose" type="button" class="Style_button_del" id="myclose"  value="关闭窗口" onClick="javascrip:window.close()">
</form>
(2)判断文件是否上传。
<%
function getFileName(strPath)
    If strPath<>"" Then
        getFileName = mid(strPath,instrrev(strPath,"\")+1)
    Else
        response.Write("请选择上传的文件!")
        response.End()
    End If
end function
%>
(3)单击“上传图片”,表单里的数据在本页进行数据处理。
<%    
dim posB, posE, posSB, posSE,Enter 
    dim strPath, strFileName, strContentType
    Enter = chrb(13)&chrb(10)   '定义一个单字节的回车换行符
    set Obj_Come = server.CreateObject("adodb.stream")
    Obj_Come.Type = 1  '指定返回数据类型 adTypeBinary=1,adTypeText=2
    Obj_Come.Mode = 3  '指定打开模式 adModeRead=1,adModeWrite=2,adModeReadWrite=3
    Obj_Come.Open 
    Obj_Come.Write request.BinaryRead(request.TotalBytes)
(4)限制文件的大小。
    FormData=Request.BinaryRead(FormSize)  '以二进制码方式读取客户端POST数据
    FormSize=Request.TotalBytes  '取得客户端相应的数据的字节大小 
    If FormSize/1024>50 Then
        response.Write("<script>alert('您上传的文件超出规定的大小,请重新上传!');location='upload.asp'</script>") 
        response.End()
    End If
(5)获取文件。
    Obj_Come.Position = 0
    Data_B = Obj_Come.Read 
    set Obj_Go = server.CreateObject("adodb.stream")
    Obj_Go.Type = 1
    Obj_Go.Mode = 3
    Obj_Go.Open 
    posB = 1
    posB = instrb(posB,Data_B,Enter)
    posE = instrb(posB+1,Data_B,Enter)
    Obj_Come.Position = posB+1
    Obj_Come.CopyTo Obj_Go,posE-posB-2
    Obj_Go.Position = 0
    Obj_Go.Type = 2
    Obj_Go.Charset = "gb2312"
    Data_C = Obj_Go.ReadText 
    Obj_Go.Close 
    posSB = 1
    posSB = instr(posSB,Data_C,"filename=""") + len("filename=""")
    posSE = instr(posSB,Data_C,"""")
    if posSE > posSB then
        strPath = mid(Data_C,posSB,posSE-posSB)  '获取文件完整路径
        posB = posE
        posE = instrb(posB+1,Data_B,Enter)
        Obj_Go.Type = 1
        Obj_Go.Mode = 3
        Obj_Go.Open 
        Obj_Come.Position = posB
        Obj_Come.CopyTo Obj_Go,posE-posB-1
        Obj_Go.Position = 0
        Obj_Go.Type = 2
        Obj_Go.Charset = "gb2312"
        Data_C = Obj_Go.ReadText 
        Obj_Go.Close 
        strContentType = mid(Data_C,16)   '获取文件类型
        posB = posE+2
        posE = instrb(posB+1,Data_B,Enter)
        Obj_Go.Type = 1
        Obj_Go.Mode = 3
        Obj_Go.Open 
        Obj_Come.Position = posB+1
        Obj_Come.CopyTo Obj_Go,posE-posB-2
        Obj_Go.Position = 0
        Data_C = Obj_Go.Read 
        Obj_Go.Close 
        dim conn, rs, sql,cnstr
        set conn = server.CreateObject("adodb.connection")
      接下来把图片保存到数据库中就不用说了吧。


如果不知道图片怎样保存到数据库中就到http://www.cnxx8.com/bbs/dispbbs.asp?boardID=2&ID=10&page=1这里去看看吧.

3 楼


也可以用组件

很多的如aspupload

我来回复

您尚未登录,请登录后再回复。点此登录或注册