求助:请问如何用ASP上传图片及文件到啊

Jsong6622 2004-11-22 09:32:22
我是asp编程初学者,请问如何实现在线上传图片及文件啊。
...全文
241 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jsong6622 2004-11-23
  • 打赏
  • 举报
回复
再次谢谢各们对我帮助,问题也顺利解决了
谢谢
angelyujun 2004-11-23
  • 打赏
  • 举报
回复
upload_5xsoft.inc

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
dim Data_5xsoft

Class upload_5xsoft

dim objForm,objFile,Version

Public function Form(strForm)
strForm=lcase(strForm)
if not objForm.exists(strForm) then
Form=""
else
Form=objForm(strForm)
end if
end function

Public function File(strFile)
strFile=lcase(strFile)
if not objFile.exists(strFile) then
set File=new FileInfo
else
set File=objFile(strFile)
end if
end function


Private Sub Class_Initialize
dim RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile
dim iFileSize,sFilePath,sFileType,sFormValue,sFileName
dim iFindStart,iFindEnd
dim iFormStart,iFormEnd,sFormName
Version="化境HTTP上传程序 Version 2.0"
set objForm=Server.CreateObject("Scripting.Dictionary")
set objFile=Server.CreateObject("Scripting.Dictionary")
if Request.TotalBytes<1 then Exit Sub
set tStream = Server.CreateObject("adodb.stream")
set Data_5xsoft = Server.CreateObject("adodb.stream")
Data_5xsoft.Type = 1
Data_5xsoft.Mode =3
Data_5xsoft.Open
Data_5xsoft.Write Request.BinaryRead(Request.TotalBytes)
Data_5xsoft.Position=0
RequestData =Data_5xsoft.Read

iFormStart = 1
iFormEnd = LenB(RequestData)
vbCrlf = chrB(13) & chrB(10)
sStart = MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)
iStart = LenB (sStart)
iFormStart=iFormStart+iStart+1
while (iFormStart + 10) < iFormEnd
iInfoEnd = InStrB(iFormStart,RequestData,vbCrlf & vbCrlf)+3
tStream.Type = 1
tStream.Mode =3
tStream.Open
Data_5xsoft.Position = iFormStart
Data_5xsoft.CopyTo tStream,iInfoEnd-iFormStart
tStream.Position = 0
tStream.Type = 2
tStream.Charset ="gb2312"
sInfo = tStream.ReadText
tStream.Close
'取得表单项目名称
iFormStart = InStrB(iInfoEnd,RequestData,sStart)
iFindStart = InStr(22,sInfo,"name=""",1)+6
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFormName = lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))
'如果是文件
if InStr (45,sInfo,"filename=""",1) > 0 then
set theFile=new FileInfo
'取得文件名
iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
theFile.FileName=getFileName(sFileName)
theFile.FilePath=getFilePath(sFileName)
'取得文件类型
iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14
iFindEnd = InStr(iFindStart,sInfo,vbCr)
theFile.FileType =Mid (sinfo,iFindStart,iFindEnd-iFindStart)
theFile.FileStart =iInfoEnd
theFile.FileSize = iFormStart -iInfoEnd -3
theFile.FormName=sFormName
if not objFile.Exists(sFormName) then
objFile.add sFormName,theFile
end if
else
'如果是表单项目
tStream.Type =1
tStream.Mode =3
tStream.Open
Data_5xsoft.Position = iInfoEnd
Data_5xsoft.CopyTo tStream,iFormStart-iInfoEnd-3
tStream.Position = 0
tStream.Type = 2
tStream.Charset ="gb2312"
sFormValue = tStream.ReadText
tStream.Close
if objForm.Exists(sFormName) then
objForm(sFormName)=objForm(sFormName)&", "&sFormValue
else
objForm.Add sFormName,sFormValue
end if
end if
iFormStart=iFormStart+iStart+1
wend
RequestData=""
set tStream =nothing
End Sub

Private Sub Class_Terminate
if Request.TotalBytes>0 then
objForm.RemoveAll
objFile.RemoveAll
set objForm=nothing
set objFile=nothing
Data_5xsoft.Close
set Data_5xsoft =nothing
end if
End Sub


Private function GetFilePath(FullPath)
If FullPath <> "" Then
GetFilePath = left(FullPath,InStrRev(FullPath, "\"))
Else
GetFilePath = ""
End If
End function

Private function GetFileName(FullPath)
If FullPath <> "" Then
GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
Else
GetFileName = ""
End If
End function
End Class

Class FileInfo
dim FormName,FileName,FilePath,FileSize,FileType,FileStart
Private Sub Class_Initialize
FileName = ""
FilePath = ""
FileSize = 0
FileStart= 0
FormName = ""
FileType = ""
End Sub

Public function SaveAs(FullPath)
dim dr,ErrorChar,i
SaveAs=true
if trim(fullpath)="" or FileStart=0 or FileName="" or right(fullpath,1)="/" then exit function
set dr=CreateObject("Adodb.Stream")
dr.Mode=3
dr.Type=1
dr.Open
Data_5xsoft.position=FileStart
Data_5xsoft.copyto dr,FileSize
dr.SaveToFile FullPath,2
dr.Close
set dr=nothing
SaveAs=false
end function
End Class
</SCRIPT>
angelyujun 2004-11-23
  • 打赏
  • 举报
回复
研究一下这两个文件

add_photo.asp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--#include file="upload_5xsoft.inc"-->
<%

function Get_FileType(s)
dim intFindStart
dim intFindLen
intFindStart=instr(s,".")
intFindLen=len(s)-intFindStart
Get_FileType=Mid(s,intFindStart+1,intFindLen)
end function

%>
<%
if request("method")="add" then
set upload=new upload_5xsoft
'是否有图片
if upload.file("pic1").filesize=0 or upload.file("pic1").filesize>=200*1024 then
response.write ("<script language='javascript'>alert('无图片或图片太大!');location='javascript:history.go(-1)';</script>")
response.end()
end if
'图片类型
filename=upload.file("pic1").filename
if lcase(Get_FileType(filename))<>"jpg" and lcase(Get_FileType(filename))<>"gif" then
response.write ("<script language='javascript'>alert('请注意图片格式!');location='javascript:history.go(-1)';</script>")
response.end()
end if
'图片名保存数据库
strSaveFileName=upload.form("id")&year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())&"."&Get_FileType(filename)
sql="insert into home_photo(pic) values('"&strSaveFileName&"')"
'conn.execute sql
'图片上传文件夹
upload.file("pic1").saveAs Server.mappath("../photos/images/"&strSaveFileName) '索引图片存放路径
response.write ("<script language='javascript'>alert('添加成功!');</script><meta HTTP-EQUIV=refresh Content=0;url='del_photo.asp'>")
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="css.css" type="text/css">
<title>Untitled Document</title>
<link rel="stylesheet" href="css.css" type="text/css">

<body>
<form action="add_photo.asp?method=add" method="post" enctype="multipart/form-data">
<table width="98%" border="1" cellpadding="0" cellspacing="0" bordercolor="#FF9900" bgcolor="#F9E4D9" class="thin">
<tr>
<td width="100" height="25" align="right">照片:</font></td>
<td bgcolor="#F9E4D9"><input name="pic1" type="file" id="pic1">  **</td>
</tr>
<tr>
<td width="100" height="25" align="right"> </td>
<td bgcolor="#F9E4D9">
<input name="submit" type="submit" id="submit" value="添加完成"><br><br>
<font style="font-size:12px; color:#FF0000 ">
图片大小不能超过200kb,格式只能为gif或jpg格式,索引图片和原始图片格式必须一致。
</font>
</td>
</tr>
</table>
</form>
</body>
</html>
Jsong6622 2004-11-23
  • 打赏
  • 举报
回复
谢谢各们对我的帮助,化境无组件上传确实很好用。
但对于一个像我这样初学者而言,总觉得一些基础问题还是弄清楚的较好虽说这些东西以后或许用的很少但总归是打基础。像搂上的随风给我贴的代码我认认真真地做了一遍可显示结果却是乱码。还请大侠们帮我指点指点我的错在那儿啊
yb2008 2004-11-22
  • 打赏
  • 举报
回复
永久不删除
yb2008 2004-11-22
  • 打赏
  • 举报
回复
有这个吧:


http://www.hc189.com/upload.rar 化境组件
gu1dai 2004-11-22
  • 打赏
  • 举报
回复
用我的修改版吧
http://www.websamba.com/gudai/updown
clcy 2004-11-22
  • 打赏
  • 举报
回复
请大家抓紧时间下载三天后将删除
clcy 2004-11-22
  • 打赏
  • 举报
回复
ASP无组件上传到数据库加读出图片

http://www.uniclr.com/end/clcy.rar
gu1dai 2004-11-22
  • 打赏
  • 举报
回复
我有个化境修改版,可以对上传后的文件进行管理
你要我就发给你base5@126.com
TSD 2004-11-22
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3568/3568110.xml?temp=.2747614
TSD 2004-11-22
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/TopicView.asp?id=3531185
everywhen 2004-11-22
  • 打赏
  • 举报
回复
使用组件,化境的还可以,简单
jasonboy 2004-11-22
  • 打赏
  • 举报
回复
不行的话,你还是找组件吧,简单,省事
bearzhan88 2004-11-22
  • 打赏
  • 举报
回复
上传文件要看你在服务器后台是如何保存这些数据。如果用文件格式保存,只要用FSO就可以了,如果用数据库存,就要分 哪一种数据库。(文件格式存放的我就不说了)
现在流行的 化境、无惧等无组件上传 都是 应用在ORACLE、SQL库下,应用原理都是 读取 数据流 STREAM,然后用 APEENDCHUNK()写入到数据库的BLOB中。 DB2 用不了APPENDCHUNK(),郁闷吧,如果你在DB2环境开发的话,老老实实的灵活点,数据库存文件名,文件数据用FSO建立文件,保存成文件吧。
fang_qing 2004-11-22
  • 打赏
  • 举报
回复
贴个代码给你:

---------------------file上传页面---------------------
<form method="POST" action="up.asp">
<p><input type="file" name="T1" size="20"><input type="submit" value="提交" name="B1"></p>
</form>

---------------------上传到数据库(up.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)
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("数据库名.mdb")
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * from 表名 where id is null",conn,1,3
rec.addnew
rec("img").appendchunk mydata
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%>
--------------------将数据库中的数据显示(xs.asp)--------------------
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("数据库名.mdb")
set rs = server.CreateObject("ADODB.Recordset")
sql="select * from 表名 where id="&request("id")
rs.open sql,conn,1,3
Response.ContentType = "image/*"
Response.BinaryWrite rs("img").getChunk(7500000)
rs.close
set rs=nothing
set conn=nothing
%>
zzy0000 2004-11-22
  • 打赏
  • 举报
回复
化境ASP无组件上传类
http://www.5xsoft.com/

你去下载看看,里面有说明书,挺详细的
程序下载地址:http://www.dxbbs.cn/down/dxbbs.rar一:程序信息程序版本号:DXBBS 6.1 AC免费版开发语言:ASP.NET ( C# )开发组织:DX 开发组联系E-MAIL:dx-studio@163.comMSN: dx-studio@hotmail.com技术QQ:86834856客服QQ:6192665官方论坛:http://www.dxbbs.cn DXBBS 论坛系统是 DX 工作组原创开发的一套ASP.NET论坛程序,V6.0 版本采用VB.NET编写,V6.1 版本后采用C#编写。DXBBS论坛系统,以最小的文件体积实现最多的功能。程序运行速度极速,几乎可以100%保证的程序安全性,高贵大方的美工界面是DXBBS论坛V6.1版本的主要特色。程序分SQL专业版与ACCESS免费版两种版本,当前版本为ACCESS免费版本。所有人可以免费使用。如果问题,请到官方论坛http://www.dxbbs.cn提出。《《未经允许不得用于商业用途。如有需要请与我们联系》》二:安装使用说明第一步:将所有文件上传到你的服务器空间。第二步:如果你放论坛程序的文件夹是虚拟主机的根目录,请跳过这一步,如果不是,将BIN文件夹移到虚拟空间根目录。第三步:如果需要修改数据库名,请修改了数据库名后,再用记事本打开修改 web.config 文件里的数据库连接字符串。如果不改数据库名,跳过这一步。(建议修改)第四步:访问论坛,如果能正常访问,进入后台管理配置论坛设置,管理员用户名和密码都为 admin。登录后自行修改管理员密码。 如果不能正常访问,检查一至三步骤,或到官方论坛 http://www.dxbbs.cn 求助。三:V 6.1 新功能说明:1。加入论坛IP过滤功能,可以禁止指定的IP访问论坛。2。加入脏字过滤功能,可以对论坛发贴内容中的某些字符进行指定的转换。3。加入特色引用功能,论坛引用功能采用JS脚本引用,高效,快速。4。加入用户头像后台管理功能,管理员可以在后台动态管理论坛用户头像。5。加入发贴表情后台管理功能,管理员可以在后台动态管理论坛发贴表情。6。加入用户组代表图片后台管理功能。7。加入不同用户组允许上传文件数量,文件大小设置。8。加入贴子和回复的屏蔽与解屏蔽功能。9。加入锁定用户功能。
七色虎建站最新版 官网 http://74hu.cn 1、后台无法登录,或者网站无法留言 问题:网站能够运行,但后台登录后无法进去管理,或者无法留言,文章内容看不了? 原因:可能是服务器空间有权限问题,无法写入数据。 解决:请与购买商联系。 2、频频出现错误 问题:刚装完程序,网站虽然能够运行,但程序错误频频出现? 原因:可能程序是网友修改过的,也有可能程序版本太旧。 解决:请到官网下载最新的程序,如果没有解决请到官网反馈。 3、网站突发问题 问题:网站平时好好的,近几天突然出现很多的问题? 原因:可能是服务器问题,如网络攻击,也有可能是程序问题,如木马上传。 解决:保留数据库,其他全删掉。到官网下载最新的程序,删掉其中的空数据库,剩下的上传即可。 4、页面自动跳首页 问题:某个页面一点击就自动转到首页? 原因:可能是页面调用出错,系统有错误检查机制,遇到影响系统运行的错误就自动转首页。也有可能是浏览器兼容问题。 解决:仔细检查页面所有内容是否出错。如未能解决问题请到官网求助 5、如何修改管理目录 问题:目前管理地址/admin和/webadmin,容易被人访问 解决:修改管理文件夹的名称,修改db.asp文件,将wapadmin和webadmin对应修改即可,目前支持子目录功能,修改方式相同。 6、系统时间不正确 问题:系统当前时间与实际时间有偏差 原因:空间主机时间错误,或者是使用外国的主机 解决:后台配置-时间配置,输入正确的时间保存即可。系统就会自动修正时间 7、论坛无法管理和会员无法注册 问题:后台管理点击论坛管理出错,前台会员无法注册 原因:国内部分主机有关键词屏蔽 解决:打开config/bbs.asp文件,将bbsagree设定的内容清空,就是改为bbsagree="" 8.游客无法评论文章 问题:游客无法评论文章,总是显示“为提高评论质量,两次评论间隔必须大于10秒!”? 原因:系统时间错误 解决:联系空间购买商,或者启用程序时间修正功能,改系统时间为正确的北京时间。 9.首页空白,后台可以进 问题:系统升级后首页显示空白,但后台可以登录管理 原因:升级步骤出错 解决:按说明文档一步一步操作,升级程序后执行数据库升级补丁updateXXX.asp。如果没有解决请到官网反馈。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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