主题:如何上传文件?
lupu
[专家分:0] 发布于 2007-04-11 00:36:00
我想制作一个类似于博客的动态网页。
当网友注册时,可以上传自己的个人头像。同时,服务器端数据库进行保存。
我想知道,如何才能实现图片上传功能呢?并且上传后,路径如何设置?
回复列表 (共3个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-04-11 08:53:00
你可以去下载一个博客源码,然后看看。
直接问别人一般很少人回答你的,因为上传图片需要很长一段代码。
板凳
java2006 [专家分:210] 发布于 2007-04-11 13:48:00
文件上传,如果想设置文件的大小,需要用到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 楼
endlessrain [专家分:10] 发布于 2007-04-13 09:25:00
也可以用组件
很多的如aspupload
我来回复