仓酷云

标题: ASP教程之转载: 用纯ASP代码完成图片上传并... [打印本页]

作者: 小魔女    时间: 2015-1-16 23:17
标题: ASP教程之转载: 用纯ASP代码完成图片上传并...
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。上传|数据|数据库用纯ASP代码完成图片上传并存进数据库中



用ASP编写网站使用程序工夫长了,不免会碰到形形色色的成绩,个中

关于怎样上传文件到服务器生怕是碰见最多的成绩了,特别是上传图片,好比

你想要在本人的社区内里完成相似网易假造社区供应的“逐日一星”的功效,

就要供应给网友上传照片的功效。上传图片文件到服务器可使用各类收费的

文件上传组件,利用起来功效固然很壮大,可是因为良多情形下,我们只能使

用收费的撑持ASP的空间大概租用他人的假造空间,关于第一种情形,我们

基本就没有大概来利用文件上传组件;至于第二种情形,我们也要支付很多的

“银子”才能够。除非你具有本人的假造主机,你就能够任意的在服务器下面

安装本人所必要的组件,这类情形关于年夜多半人来讲是可看而不成及的。那我

们就没有举措了吗?呵呵,谜底是一定的(固然是一定的了,要否则我也没法

写出这篇文章啊)。上面就让我们一同来利用纯ASP代码来完成图片的上传

和保留到数据库的功效(特地也完成显现数据库中的图片到网页上的功

能)。

起首我们先来熟习一下将要利用的工具办法。我们用来猎取上一个页面传

递过去的数据通常为利用Request工具。一样的,我们也能够利用Request工具

来猎取上传下去的文件数据,利用的办法是Request.BinaryRead()。而我们要从

数据库中读出来图片的数据显现到网页下面要用到的办法是:

Request.BinaryWrite()。在我们失掉了图片的数据,要保留到数据库中的时分,

不成以间接利用Insert语句对数据库举行操纵,而是要利用ADO的

AppendChunk办法,一样的,读出数据库中的图片数据,要利用GetChunk方

法。各个办法的详细语法以下:

*Request.BinaryRead语法:

variant=Request.BinaryRead(count)

参数

variant

前往值保留着从客户端读取到数据。

count

指明要从客户端读取的数据量巨细,这个值小于大概即是利用办法

Request.TotalBytes失掉的数据量。

*Request.BinaryWrite语法:

Request.BinaryWritedata

参数

data

要写进到客户端扫瞄器中的数据包。

*Request.TotalBytes语法:

variant=Request.TotalBytes

参数

variant

前往从客户端读取到数据量的字节数。

*AppendChunk语法

将数据追加到年夜型文本、二进制数据Field或Parameter工具。

object.AppendChunkData

参数

objectField或Parameter工具

Data变体型,包括追加到工具中的数据。

申明

利用Field或Parameter工具的AppendChunk办法可将长二进制或字符数

据填写到工具中。在体系内存无限的情形下,可使用AppendChunk办法对长

整型值举行部分而非全体的操纵。

*GetChunk语法

前往年夜型文本或二进制数据Field工具的全体或部份内容。

variable=field.GetChunk(Size)

前往值

前往变体型。

参数

Size长整型表达式,即是所要检索的字节或字符数。

申明

利用Field工具的GetChunk办法检索其部分或全体长二进制或字符数据。

在体系内存无限的情形下,可以使用GetChunk办法处置部分而非全体的长整型

值。

GetChunk挪用前往的数据将赋给“变量”。假如Size年夜于残剩的数据,则

GetChunk仅前往残剩的数据而无需用空缺添补“变量”。假如字段为空,则

GetChunk办法前往Null。

每一个后续的GetChunk挪用将检索夙昔一次GetChunk挪用中断处入手下手的数

据。可是,假如从一个字段检索数据然后在以后纪录中设置或读取另外一个字段

的值,ADO将以为已从第一个字段中检索出数据。假如在第一个字段上再次调

用GetChunk办法,ADO将把挪用注释为新的GetChunk操纵并从纪录的肇端

处入手下手读取。假如其他Recordset工具不是首个Recordset工具的正本,则

会见个中的字段不会损坏GetChunk操纵。

假如Field工具的Attributes属性中的adFldLong位设置为True,则可

以对该字段利用GetChunk办法。

假如在Field工具上利用Getchunk办法时没有以后纪录,将发生毛病3021

(无以后纪录)。

接上去,我们就要来计划我们的数据库了,作为测试我们的数据库布局如

下(Access97):

字段称号    范例    形貌

  id   主动编号   主键值

imgOLE工具   用来保留图片数据 



关于在MSSQLServer7中,对应的布局以下:

字段称号    范例    形貌

  id    int(Identity) 主键值

img  image    用来保留图片数据 



如今入手下手正式编写我们的纯ASP代码上传部分了,起首,我们有一个提

供应用户的上传界面,可让用户选择要上传的图片。代码以下

(upload.htm):

<html>

<body>

<center>

  <formname="mainForm"enctype="multipart/form-data"

action="process.asp"method=post>

    <inputtype=filename=mefile><br>

  <inputtype=submitname=okvalue="OK">

  </form>

</center>

</body>

</html>

注重代码中玄色斜体的部分,必定要在Form中有这个属性,不然,将无

法失掉上传下去的数据。

接上去,我们要在process.asp中对从扫瞄器中猎取的数据举行需要的处

理,由于我们在process.asp中猎取到的数据不单单包括了我们想要的上传下去

的图片的数据,也包括了其他的无用的信息,我们必要剔除冗余数据,并将处

理过的图片数据保留到数据库中,这里我们以Access97为例。详细代

码以下(process.asp):

<%

response.buffer=true

formsize=request.totalbytes

formdata=request.binaryread(formsize)

bncrlf=chrB(13)&chrB(10)

divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)

datastart=instrb(formdata,bncrlf&bncrlf)+4

dataend=instrb(datastart+1,formdata,divider)-datastart

mydata=midb(formdata,datastart,dataend)



setconnGraph=s</p>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。
作者: 金色的骷髅    时间: 2015-1-20 08:59
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
作者: 愤怒的大鸟    时间: 2015-1-29 06:20
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
作者: 再现理想    时间: 2015-1-29 19:33
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
作者: 不帅    时间: 2015-2-2 22:03
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
作者: 飘飘悠悠    时间: 2015-2-8 09:01
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
作者: 谁可相欹    时间: 2015-2-25 06:58
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
作者: 老尸    时间: 2015-3-7 17:38
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
作者: 兰色精灵    时间: 2015-3-15 10:11
Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
作者: 若相依    时间: 2015-3-22 00:10
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2