仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 435|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页编程之纯ASP上传图象文件到数据库的最好例子

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:27:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。getfile.htm
-------------------------
<html>

<head>
<title>保留图片到数据库</title>
</head>

<body>
<b>

<p></b>你能够找个图片尝尝,保留终了后会有提醒</p>

<formMETHOD="POST"ENCTYPE="multipart/form-data"ACTION="savetodb.asp">
<p>Email:<inputNAME="email"VALUE="wangcq@sina.com"size="20"><br>
Picture:<inputTYPE="file"NAME="blob"><br>
<inputTYPE="submit"NAME="Enter"></p>
</form>
</body>
</html>

savetodb.asp
----------------------------------
<%

Response.Buffer=TRUE
Response.Clear
byteCount=Request.TotalBytes

RequestBin=Request.BinaryRead(byteCount)
DimUploadRequest
SetUploadRequest=CreateObject("Scripting.Dictionary")

BuildUploadRequestRequestBin

email=UploadRequest.Item("email").Item("Value")

contentType=UploadRequest.Item("blob").Item("ContentType")
filepathname=UploadRequest.Item("blob").Item("FileName")
filename=Right(filepathname,Len(filepathname)-InstrRev(filepathname,""))
picture=UploadRequest.Item("blob").Item("Value")

Response.ContentType=contentType
Response.binaryWritepicture

setobjCn=server.createobject("adodb.connection")
setobjRst=server.createobject("adodb.recordset")
objCn.Open"upload"
objrst.Open"pic",objcn,1,3,2
objrst.addnew
objrst.fields("filename")=filename
objrst.fields("type")="gif"

objrst.fields("what").appendchunkpicture
objrst.update
response.write"<ahref=showpic.asp?id="&objrst("id")&">第"&objrst("id")&"个图片。</a>"
objrst.close

objCn.close
setobjrst=nothing
setobjcn=nothing
%>
<!--#includefile="upload.asp"-->

showpic.asp
----------------------------------------
<%
setobjCn=server.createobject("adodb.connection")
setobjRst=server.createobject("adodb.recordset")
objCn.Open"upload"
objrst.Open"selectwhatfrompicwhereid="&request("id"),objcn

ifnotobjrst.eofthen
response.binarywriteobjrst("what")
endif

objrst.close
objCn.close
setobjrst=nothing
setobjcn=nothing
%>


upload.asp
-------------------------------------------
<%
SubBuildUploadRequest(RequestBin)
Gettheboundary
PosBeg=1
PosEnd=InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary=MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos=InstrB(1,RequestBin,boundary)
Getalldatainsidetheboundaries
Dountil(boundaryPos=InstrB(RequestBin,boundary&getByteString("--")))
Membersvariableofobjectsareputinadictionaryobject
DimUploadControl
SetUploadControl=CreateObject("Scripting.Dictionary")
Getanobjectname
Pos=InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos=InstrB(Pos,RequestBin,getByteString("name="))
PosBeg=Pos+6
PosEnd=InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name=getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile=InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound=InstrB(PosEnd,RequestBin,boundary)
Testifobjectisoffiletype
IfPosFile0AND(PosFile<PosBound)Then
GetFilename,content-typeandcontentoffile
PosBeg=PosFile+10
PosEnd=InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName=getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
Addfilenametodictionaryobject
UploadControl.Add"FileName",FileName
Pos=InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg=Pos+14
PosEnd=InstrB(PosBeg,RequestBin,getByteString(chr(13)))
Addcontent-typetodictionaryobject
ContentType=getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add"ContentType",ContentType
Getcontentofobject
PosBeg=PosEnd+4
PosEnd=InstrB(PosBeg,RequestBin,boundary)-2
Value=MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Getcontentofobject
Pos=InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg=Pos+4
PosEnd=InstrB(PosBeg,RequestBin,boundary)-2
Value=getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
EndIf
Addcontenttodictionaryobject
UploadControl.Add"Value",Value
Adddictionaryobjecttomaindictionary
UploadRequest.Addname,UploadControl
Looptonextobject
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop

EndSub

Stringtobytestringconversion
FunctiongetByteString(StringStr)
Fori=1toLen(StringStr)
char=Mid(StringStr,i,1)
getByteString=getByteString&chrB(AscB(char))
Next
EndFunction

Bytestringtostringconversion
FunctiongetString(StringBin)
getString=""
ForintCount=1toLenB(StringBin)
getString=getString&chr(AscB(MidB(StringBin,intCount,1)))
Next
EndFunction
%>

test.mdb(dsn称号:upload)
----------------------------------------
表pic:
id:主动加
filename:文本
type:文本
what:ole

-----------------------------------------
存成单个文件,放在一个目次下,翻开(必需用http://...)getfile.htm
上传一个.gif或.jpg就能够显现了。
关于年夜文件在显现程序(showpic.asp)中大概会用到轮回和getchunk办法。本人往做。记着,因为ASP今朝临时不撑持二举行制读写,只能存二进制到数据库中。
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 13:25:47 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
爱飞 该用户已被删除
板凳
发表于 2015-1-25 21:19:24 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
因胸联盟 该用户已被删除
地板
发表于 2015-2-4 03:08:44 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
蒙在股里 该用户已被删除
5#
发表于 2015-2-9 13:21:51 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
不帅 该用户已被删除
6#
发表于 2015-2-27 06:38:28 | 只看该作者
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
小魔女 该用户已被删除
7#
发表于 2015-2-27 06:38:28 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
简单生活 该用户已被删除
8#
发表于 2015-3-8 23:19:28 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
小女巫 该用户已被删除
9#
发表于 2015-3-16 18:17:17 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
10#
 楼主| 发表于 2015-3-22 23:57:35 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 03:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表