| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:上传图片的几种方法
只看楼主 加入收藏
hellode
Rank: 2
等 级:论坛游民
帖 子:161
专家分:16
注 册:2007-3-29
结帖率:80%
收藏
 问题点数:0 回复次数:2 
上传图片的几种方法
我想做一个上传图片的页!
不想用组件
,首先我选了化镜,但是用了化镜只能传一张图片到指定位址!

,它有一个多图上传的,但是只给绝对地址,没有相对地址,

然后是写入数据库的,但是我想它们最好保存在文件夹里!

有什么其它的方法吗?
2007-04-23 11:45
hellode
Rank: 2
等 级:论坛游民
帖 子:161
专家分:16
注 册:2007-3-29
收藏
得分:0 

实在没办法了!大家帮我看下这个哪错了?
<!--#include file="connx.asp"-->
<%
response.expires=0
'风采上传
'目的:将二进制字符转换成普通字符
Function bin2str(binstr)
Dim varlen,clow,ccc,skipflag
skipflag=0
ccc = ""
varlen=LenB(binstr)
For i=1 To varlen
If skipflag=0 Then
clow = MidB(binstr,i,1)
If AscB(clow) > 127 Then
ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))
skipflag=1
Else
ccc = ccc & Chr(AscB(clow))
End If
Else
skipflag=0
End If
Next
bin2str = ccc
End Function
'目的:把表单中的图象数据分离出来
'其中参数formsize为表单数据大小,formdata为表单的总数据
Function ImageUp(formsize,formdata)
bncrlf=chrb(13) & chrb(10)
divider=leftb(formdata,instrb(formdata,bncrlf)-1) 'formdata第一个bncrlf左边的数据
datastart=instrb(formdata,bncrlf & bncrlf)+4 '两个bncrlf右边的数据的起始位
dataend=instrb(datastart+1,formdata,divider)-datastart
Imageup=midb(formdata,datastart,dataend)
End Function

'目的:把表单中的变量值取出
'其中参数varName为要寻找的字段变量,strTXT为已从图象中分离出来的的所有文本
Function findVar(varName,strTxt)
startPos=1
strLen=len(varName)+2
'表单中可能有多个同名变量(用在有主表与明细表中的数据更新中)
for i=1 to len(strTXT)
varStart=instr(startPos,strTXT,varName)+strLen+3
varEnd=instr(varStart,strTXT,"--")-2
varValLen=varEnd-varStart

inVar=mid(strTXT,varStart,varValLen)
findVar=findVar & inVar

startPos=instr(varStart,strTXT,varName)
if startPos=0 then exit for '如果找不到则退出循环
findVar=findVar & "," ' 以","作为多个同名变量值间的分隔符,实际上本例倒不需要
next

End function

FormSize = Request.TotalBytes
FormData = Request.BinaryRead( FormSize )
Image = ImageUp(FormSize,Formdata)

'以下两步不能省略,否则取不出文字
strTXT=mid(formdata,instr(formdata,image)+len(image)+1) '取出文字
strTXT=bin2str(strTXT) '二进制转换成普通文字

imginfo=findVar("imginfo",strTXT) '相当于request.form("imginfo")
'MyArray = Split(imginfo, ",", -1, 1) '分离从imginfo返回的多个值,在本例子中不用

Application.Lock
set objCnn=Server.CreateObject("ADODB.Connection")
objCnn.Open strCnn
set rec=Server.CreateObject("ADODB.Recordset")
rec.Open "imgtest",objCnn,1,3
rec.addnew '如果你只想更新一个记录,则可使这句失效
rec("imginfo")=imginfo
if Len(Image)>1 then
rec("img").Appendchunk Image '把图象写入数据库
end if
rec.update
rec.close:set rec=nothing
set objCnn=Nothing
Application.Unlock
'输出图象说明和图象
response.write imginfo
response.write "<img src='showimg2.asp?imginfo=" & imginfo & "' boder=0>"
%>
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
/process.asp, 第 71 行


[url=http://www./]鄂州大学DE校园论坛[url]
2007-04-23 11:48
hellode
Rank: 2
等 级:论坛游民
帖 子:161
专家分:16
注 册:2007-3-29
收藏
得分:0 
这个是71行的内容


Application.Lock
set objCnn=Server.CreateObject("ADODB.Connection")
objCnn.Open strCnn

帮看一下!

[url=http://www./]鄂州大学DE校园论坛[url]
2007-04-23 12:02
快速回复:上传图片的几种方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016426 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved