在免费个人主页(支持ASP)能实现上传功能吗?

zhangleiuser 2000-07-03 02:28:00
请问在个人主页中如何实现文件上传?有没有可能我以有
一个空间的FTP用户名及密码。在主页上使用浏览器上传
到这个空间??
如果这个设想可行,哪可是个人主页的WebMaster的一大
幸事呀!
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqwj 2000-07-13
  • 打赏
  • 举报
回复
这是一个很有意思的问题。
首先,在ASP服务器(其它类型另当别论)的免费空间中,可以提供让浏览用户
上传文件的功能,方法有两种:
1.ASP服务器提供了文件上传的组件,如果服务对你开发了文件上传组件,那么你就可以
用这个组件写ASP程序提供文件上传的功能,这是最得意的方法。
2.如果没有组件可用,那你就写原代码吧---太累了,我这里有篇上传图片的文章,你可以参考一下。

图片上传源码

关键词:Access, ASP

SavePic.asp

<%
'---------------------------------------RETURN THE IMAGE FORMAT--------------------
function checkImageFormat(checkdata)
'--return: A,B,C (A is image format; B is height pixels; C is width pixels; D is color depth)

flag=0 '''''''0 is not jpg/gif/png image; 1 is jpg/gif/png

'-------------------------------------------------------check jpg----------------
if flag=0 then
tempstr=Leftb(checkdata,10)
tstr=chrb(255)&chrb(216)&chrb(255)&chrb(224)&chrb(0)&chrb(16)&chrb(74)&chrb(70)&chrb(73)&chrb(70)

if strcomp(tempstr,tstr,0)=0 then
msgstr01="jpg"
lngSize = len(checkdata)
flgFound = 0

strTarget = chrb(255) & chrb(216) & chrb(255)
flgFound = instrb(checkdata, strTarget)

lngPos = flgFound + 2
ExitLoop = false

do while ExitLoop = False and lngPos < lngSize

do while ascb(midb(checkdata, lngPos, 1)) = 255 and lngPos < lngSize
lngPos = lngPos + 1
loop

if ascb(midb(checkdata, lngPos, 1)) < 192 or ascb(midb(checkdata, lngPos, 1)) > 195 then
lngMarkerSize = lngConvert2(midb(checkdata, lngPos + 1, 2))
lngPos = lngPos + lngMarkerSize + 1
else
ExitLoop = True
end if

loop

i_Height = lngConvert2(midb(checkdata, lngPos +4, 2))
i_Width = lngConvert2(midb(checkdata, lngPos +6, 2))
i_Depth = 2 ^ (ascb(midb(checkdata, lngPos + 8, 1)) * 8)

msgstr02=","& i_height & "," & i_width
flag=2
else
flag=0
end if


end if
'--------------------------------------------------check gif--------------------------------
if flag=0 then
tempstr=Leftb(checkdata,6)
tstr=chrb(71)&chrb(73)&chrb(70)&chrb(56)&chrb(57)&chrb(97)
tstr2=chrb(71)&chrb(73)&chrb(70)&chrb(56)&chrb(55)&chrb(97)
if strcomp(tempstr,tstr,0)=0 or strcomp(tempstr,tstr2)=0 then
msgstr03="gif"

i_width=lngConvert(midb(checkdata,7,2))
i_height=lngConvert(midb(checkdata,9,2))
i_Depth = 2 ^ ((ascb(midb(checkdata, 11, 1)) and 7) + 1)
msgstr04=","& i_height & ","& i_width

flag=2
else
flag=0
end if
end if

'---------------------------------------------------check png------------------------------
if flag=0 then
tempstr=Leftb(checkdata,4)
tstr=chrb(137)&chrb(80)&chrb(78)&chrb(71)
if strcomp(tempstr,tstr,0)=0 then
msgstr05="png"

i_Width = lngConvert2(midb(checkdata, 19, 2))
i_Height = lngConvert2(midb(checkdata, 23, 2))
i_Depth = lngConvert(midb(checkdata, 25, 2))

select case ascb(right(i_Depth,1))
case 0
i_Depth = 2 ^ (asc(left(i_Depth, 1)))
gfxSpex = True
case 2
i_Depth = 2 ^ (asc(left(i_Depth, 1)) * 3)
gfxSpex = True
case 3
i_Depth = 2 ^ (asc(left(i_Depth, 1))) '8
gfxSpex = True
case 4
i_Depth = 2 ^ (asc(left(i_Depth, 1)) * 2)
gfxSpex = True
case 6
i_Depth = 2 ^ (asc(left(i_Depth, 1)) * 4)
gfxSpex = True
case else
i_Depth = -1
end select
msgstr06=","& i_height & ","& i_width

flag=2
else
flag=0
end if
end if
if flag=0 then
msgstr07="no image"
end if
msgstr=msgstr01 & msgstr02 & msgstr03 & msgstr04 & msgstr05 & msgstr06 & msgstr07

checkImageFormat=msgstr
end function

function lngConvert2(strTemp)
str1=leftb(strTemp,1)
str2=rightb(strTemp,1)
lngConvert2 = clng(ascb(str2) + ((ascb(str1) * 256)))
end function

function lngConvert(strTemp)
str1=leftb(strTemp,1)
str2=rightb(strTemp,1)
len1=ascb(str1)
len2=ascb(str2)
lngConvert = clng(ascb(str1) + ascb(str2) * 256)
end function

'------------------------Copyright by qinls------------------
%>




<%

Response.buffer=true '将服务端传送给缓冲区
filesize=Request.totalbytes '客户端响应数据字节的大小
filedata=Request.binaryread(filesize) '得到数据量要小于或等于totalbytes




'*******得到有效的图片的信息*********
bncrlf=chrB(13) & chrB(10)
divider=leftB(filedata,clng(instrB(filedata,bncrlf))-1)
datastart=instrb(filedata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,filedata,divider)-datastart '(搜索的起点,字符串1,字符串2)
mydata=midb(filedata,datastart,dataend)

arrayMessage=split(checkImageFormat(mydata),",")
'*********************************

%>

<% if arrayMessage(1)>150 OR arrayMessage(2)>100 then %>
<script language="javascript">
alert("您所选择的图片的尺寸不符合要求!应在 高*宽 150*100 之间")
window.location="SP.htm"
</script>
<% Else
Set Cn=server.CreateObject("ADODB.connection")
Cn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("pic.mdb")
Cn.Open

Set Rs=Server.createobject("ADODB.Recordset")
Rs.Open "SELECT * FROM T1 where ID is Null",Cn,1,3
Rs.Addnew
Rs.Fields("IMG").appendchunk mydata
Rs.Update
Rs.Close
Set Rs=nothing
Set Cn=nothing
End if
%>
<script language="Javascript">
window.location="SP.htm"
</script>



'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&



SearchPic.asp

<script language="javascript">

</script>
<%
Set Cn=server.CreateObject("ADODB.connection")
Cn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("pic.mdb")
Cn.Open
Set Rs=Server.Createobject("ADODB.Recordset")

Sql="SELECT * from T1"
Rs.open Sql,Cn,2,3

Response.Write "<table width=""100%"" cellspacing=""0"" cellpadding=""0"" border=""2"" bordercolor=""#CCCCCC"" align=""center"">"
Do While NOT Rs.EOF
Response.Write "<tr>"
Response.Write "<td>"
Response.Write trim(Rs.Fields("ID"))
Response.Write "</td>"
Numberimg=Rs.Fields("ID")
Response.Write "<td>"
Response.Write "<IMG SRC=""ShowPic.asp?ID=" & Numberimg & """>"
Response.Write "</td>"
Rs.MoveNext
Response.Write "</tr>"
Loop
Response.Write "</table>"%>
<% Response.Write "<P></P>" %>
<input type="button" value="继续上传图片" onclick="window.location='SP.htm'">
<%Rs.Close
Cn.Close
%>



'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
SeeBig.asp

<HTML>
<BODY >
<input type="image" name="img1" SRC= <%=Request("FFF") %> >
</BODY>
</HTML>



'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

ShowPic.asp


<%
Set Cn=server.CreateObject("ADODB.connection")
Cn.ConnectionString="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("pic.mdb")
Cn.Open
Set Rs=Server.Createobject("ADODB.recordset")
Sql="SELECT IMG from T1 WHERE ID=" & Request("ID")
Rs.open Sql,Cn,1,1
Response.ContentType = "image/*"
Response.BinaryWrite Rs("IMG").getChunk(7500000)

Rs.Close

Set Rs=nothing
Set Cn=nothing
%>

'&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

SP.htm


<html>
<head>
<script language="JavaScript">
function See(hh,ff) {
hh.src=ff.value
}
function SeeBig(filepath){
window.open("SeeBig.asp?FFF="+filepath,"","");
}
</Script>
</head>
<body>

<form name="f1" enctype="multipart/form-data" action="SavePic.asp" method=post>
<input type=file name="file1">
<input type="button" name="b1" value="预览" onClick="See(this.form.picview,this.form.file1)" >
<input type=submit name="upfile" value="上传">
<br>
<img src="image/view.JPG" name="picview" width="100" height="120" Border="0" alt="单击放大" onClick="SeeBig(file1.value)">
</form>

<form name="f2" action="SearchPic.asp" method="post">
<input type="submit" name="s2" value="查看所有上传图片">
</form>

</body>
</html>



--------------------------------------------------------------------------------

Wonny 2000-07-12
  • 打赏
  • 举报
回复
go.163.com 里的个人主页就是这样的!
tingweb 2000-07-11
  • 打赏
  • 举报
回复
关注

4,354

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧