asp 上传文件到服务器,ASP最简单上传文件方法

ASP最简单上传文件方法

(2010-09-16 18:03:10)

标签:

化境

组件

服务器

数据库

上传

it

1.如果服务器装了文件上传组件,可查阅一下该组件的相关属性和方法,不过现在很多服务器空间都不支持这类组件.暂不在这里讨论.

2.若服务器不支持文件上传组件,可以考虑自己写个无组件上传程序,网上有一个"化境无组件上传"比较经典,也比较好用.地址:http://www.5xsoft.com/Down.aspx?id=2.

你可以下载一个参考,里面的说明很详细.

不过可能有的服务器也不会支持,因为该组件可能会被视为木马之类而被清除.

3.利用服务器的FSO组件可实现文本文件之类的在线读写,但要实现上传图片估计不能,我还没见过.

4.以上办法都不行时,我们可以考虑将图片上传到数据库.下面以Access为例,看一个简单的代码:

首先建一个数据库,假设为(img.mdb).在其中建一表(pic),表中有两个字段(id,img),id数据类型为"自动编号",img的类型为"OLE对象".

下面用三个文件用来实现图片功能,conn.asp是定义数据库连接函数的,up.asp用来上传图片,show.asp用来从数据库读取图片.

-------------conn.asp--------------

dim conn,rs

function getdata(sql)

dbpath="img.mdb"

set conn=server.CreateObject("ADODB.connection")

connstr="provider=Microsoft.jet.oledb.4.0;data

source="&server.MapPath(dbpath)

conn.open connstr

set rs=server.CreateObject("ADODB.recordset")

rs.open sql,conn,3,2

end function

sub rsclose()

rs.close()

set rs=nothing

conn.close()

set conn=nothing

end sub

%>

---------------up.asp---------------

enctype="multipart/form-data" >

id="imgurl">

value="upload">

if (request.totalbytes)>0 then

'如果有数据提交,则进行下面的处理

%>

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)

sql="select * from pic"

getdata(sql)

rs.addnew

rs("img").AppendChunk myData

rs.update

rsclose()

response.clear

response.write "success!"

end if

%>

-------------show.asp--------------

id=trim(request("id"))

sql="select * from pic where id="&id

getdata(sql)

Response.ContentType="image/*"

Response.BinaryWrite rs("img").getChunk(8000000)

rsclose()

%>

图片上传后就可以通过show.asp?id=*来读取了,你也可以直接将图片用标签插入其他页面中,如

src="show.asp?id=1" />

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值