asp如何实现文件上传功能

我下了个很简单的asp+access的电子商务网站,这个网站其他方面都好的,就是无法实现图片上传功能,网站的后台有说明的,说要注册一个dll组件,我按他的方法找了,可是找... 我下了个很简单的asp+access的电子商务网站,这个网站其他方面都好的,就是无法实现图片上传功能,网站的后台有说明的,说要注册一个dll组件,我按他的方法找了,可是找不到那个组件,哪位高手可以帮我看看啊!
我不太懂的,谁能帮我看看,我的qq:43071046
想实现upload功能的,请注册(regsvr32)/admin/up/里边那个dll组件 但是那个文件夹里根本没有dll为后缀名的文件,只有一个demo3.asp文件
展开
 我来答
娱乐小八卦啊a
高粉答主

2020-05-20 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117858

向TA提问 私信TA
展开全部

基本原理是:采用ADO Stream对象的BinaryRead方法将FORM中的所有数据读出,从中截取出所需的文件数据,以二进制文件方式存盘。

下面是上传文件页面的一个例子:

<html>

<body>

<form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp">

<input type="file" name="FileName">

<INPUT TYPE="Submit" VALUE="Upload"></TD>

</form>

</body>

</html>

扩展资料

几种文件上传技术的比较

1、基于HTTP协议

该方法需要编程者利用第三方软件,如DELPHI、VB等,在应用程序中先进行HTTP协议编程,然后将待上传文件内容按HTTP协议的格式打包,最后向WEB服务器发送上传的请求报文,从而实现文件的上传。

因为DELPHI和VB不能编写完整的WEB网络程序,只能编写WEB小应用程序,因此,该方法只用于功能受限的网络应用。

2、基于VB(或DELPHI等)开发的文件上传组件

该方法利用VB(或DELPHI等编程语言)开发ASP服务器组件,实现特定的文件上传服务。它首先利用ASP表单功能将文件(二进制格式)从用户端上传到服务器端,然后使用VB开发的组件,对二进制文件进行处理,成为可以正常读写的文件。

该方法要求编程者不仅掌握ASP语言,而且还能利用VB等第三方语言进行组件编程,增加了开发的难度。

3、基于数据库技术

该方法和上个方法有类似之处。不同的地方在于对上传的二进制文件的处理上。它使用数据库来保存二进制文件。无论是小型数据库还是大型数据库都提供了存储二进制数据的数据类型,只要以Append Chunk方式将数据存入相应的字段就可以了。

该方法虽然简单可行,但是因为每次上传的文件大小都是不一样的,因此,会对数据库的空间造成很大的浪费,降低了数据的访问速度;并且使得文件只能在数据库环境下进行访问,造成了很大的不便。

清歌
推荐于2017-11-23
知道答主
回答量:20
采纳率:0%
帮助的人:16.8万
展开全部
不知道你的源代码,没法帮你找啊,不过实在找不到可以自己写段代码。

ASP上传,有无组件上传和组件上传两种

无组件上传可以在数据库中建立一个字段类型为OLE对象的字段,然后通过写代码上传。

如楼主有需要,可在此回复。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友50f744e
推荐于2018-05-15 · TA获得超过135个赞
知道小有建树答主
回答量:311
采纳率:54%
帮助的人:112万
展开全部
文件1.上传界面文件 upload.htm

<html>

<head>
<meta 
http-equiv="Content-Language" content="zh-cn">
<meta 
http-equiv="Content-Type" content="text/html; 
charset=gb2312">
<title>文件上传</title>
</head>

<body>
<form 
method="POST" action="SaveFile.asp">
文件上传:<input type="file" 
name="file" size="42">&nbsp;<input type="submit" value="提交" 
name="bb">
</form>

</body>

</html>


文件2.保存上传文件 
SaveFile.asp

<%
dim file,filename,houzui
file = 
Request.Form("file")

if file="" 
then
response.write"<script>alert('请选择要上传的文件!');window.location.href='upload.htm';</script>"
else
houzui=mid(file,InStrRev(file, 
"."))

if houzui=".gif" or houzui=".jpg" or houzui=".bmp" then 
'允许上传的文件类型
filename=year(date) & month(date) & day(date) & 
Hour(time) & minute(time) & second(time) & houzui

Set 
objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 
1
objStream.Open
objStream.LoadFromFile file
objStream.SaveToFile 
Server.MapPath(filename),2
objStream.Close

//============================把文件名写入数据库,如无需要,可删除此段代码!
Set 
conn = Server.CreateObject("ADODB.Connection")
conn.open "DRIVER={Microsoft 
Access Driver (*.mdb)}; DBQ=" & Server.MapPath("mb.mdb")
set 
rs=server.CreateObject("adodb.recordset")
rs.open "select*from 
img",conn,1,2
rs.addnew
rs("name")=filename
rs.update
set 
rs=nothing
conn.close
set 
conn=nothing
//========================================

response.write"<script>alert('图片上传成功!');window.location.href='upload.htm';</script>"
else
response.write"<script>alert('不允许上传" 
& houzui & 
"的格式!');window.location.href='upload.htm';</script>"
end if
end 
if
%>

希望对你有用

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小鸟蚁人
2020-04-04 · 超过13用户采纳过TA的回答
知道答主
回答量:124
采纳率:71%
帮助的人:8.5万
展开全部
<%Response.Charset="gb2312"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<%
dim conn
dim rs
dim rs2
dim rs3

sc=request("sc")
page=request("page")
if page="" then
page=1
end if

set conn=server.createobject("adodb.connection")
conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("../../data/db.mdb")
conn.open

if sc<>"" then
set rs3=server.createobject("ADODB.recordset")
sql3="select * from img where id="&sc
rs3.open sql3,conn,1,3
img_name=rs3("img_name")
rs3.delete
rs3.update
rs3.close
set rs3=nothing

Set fs=Server.CreateObject("Scripting.FileSystemObject")
If fs.FileExists(server.mappath("../../pic/"&img_name&".jpg"))=true Then
set f=fs.GetFile(server.mappath("../../pic/"&img_name&".jpg"))
f.Delete
set f=nothing
End If
set fs=nothing
response.redirect "upload.asp?page="&page
end if

formsize=request.totalbytes

if formsize<>0 then
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)

if lenb(mydata)<30000 and lenb(mydata)>20000 then '判断文件大小,必须大于20kb小于30kb。

set rs=server.createobject("ADODB.recordset")
sql="select * from img"
rs.open sql,conn,1,3
rs.addnew
rs("temp").AppendChunk myData
tpm=replace(now(),"/","_") '用的日期做名字,日期里面有"/"," ",":"之类的东西,这些东西全部替换成"_"。
tpm=replace(tpm,":","_")
tpm=replace(tpm," ","_")
rs("img_name")=tpm
rs.update

Set MyStream=Server.CreateObject("Adodb.Stream")
MyStream.Type=1
MyStream.Open
MyStream.Write rs("temp").getChunk(8000000)
MyStream.SaveToFile server.mappath("../../pic/"&tpm&".jpg")
MyStream.close
set MyStream=nothing

rs("temp")="" '把access里面的二进制图片内容删除,只保留图片的名字。
rs.update

rs.close
set rs=nothing
response.write "<script>alert(""ok"");location.href=""upload.asp""</script>"

else
response.write "<script>alert(""请上传20kb至30kb之内的图片"");location.href=""upload.asp""</script>"
end if
end if
%>
<!DOCTYPE html>
<html>
<head>
<title>编辑</title>
<meta name="keywords" content="编辑">
<meta name="description" content="编辑">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="edit.css" charset="utf-8">
<meta name="viewport" content="width=10,initial-scale=1,user-scalable=no">
<meta name="applicable-device" content="pc,mobile">

</head>
<body>
<form id="form1" action="upload.asp" method="post" enctype="multipart/form-data">
<label id="label1">选择图片
<input id="xzwj" type="file" name="img">
</label>
<input type="submit" name="ok" value="上传">
</form>

<!--------------下面是把图片显示出来------------------->

<div id="img_div"><!--------------创建一个div把图片显示区域定位一下------------------->
<%
set rs2=server.createobject("ADODB.recordset")
sql2="select * from img order by id desc"
rs2.open sql2,conn,1,1
rs2.pagesize=5
rs2.absolutepage=page
for s=1 to 5
if not rs2.eof and not rs2.bof then
%>
<div id="dbox">
<div id="box11">
<img id="box11_img" onclick="cimg(this)" src="../../pic/<%=rs2("img_name")%>.jpg">
</div>
<a href="upload.asp?sc=<%=rs2("id")%>&page=<%=page%>" title="删除图片">
<div id="quan">
<div id="x1"></div>
<div id="x2"></div>
</div>
</a>
</div>
<%
else
exit for
end if
rs2.movenext
next
%>
</div>
<div id="fenye">
<button><%=page%></button>
<%
a=page-1
b=page+1
if a<0 or a=0 then
%>
<button>上一页</button>
<%
else
%>
<a href="upload.asp?page=<%=a%>"><button>上一页</button></a>
<%
end if
%>

<%
if b>rs2.pagecount then
%>
<button>下一页</button>
<%
else
%>
<a href="upload.asp?page=<%=b%>"><button>下一页</button></a>
<%
end if
%>
</div>
<%
rs2.close
set rs2=nothing
conn.Close
Set conn = Nothing
%>
<script>
text=window.parent.document.getElementById("text");
bbb=window.parent.window.getSelection();

function cimg(obj){
aaa=bbb.toString();
imgSrc=obj.src;
imgSrc=imgSrc.split("\/pic\/");
imgSrc=imgSrc[1];
imgSrc="$yuming$pic\/"+imgSrc;
window.parent.document.execCommand("insertText", false,"<p align=\"center\"><img src=\""+imgSrc+"\""+" alt=\"xxxx\""+">"+"<\/p>")
}
</script>
</body>
<html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hopehaitun
2010-04-08 · TA获得超过161个赞
知道小有建树答主
回答量:174
采纳率:50%
帮助的人:83.9万
展开全部
你登陆网站后台看一下,是否支持无组件上传,如果支持,可以选择无组件上传。如果不允许选择,你在百度上搜一下DLL组件。或者你把说明中发出来,我给你看看是什么组件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式