CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

怎样用数据库存取图片?

楼主ksy(一定要争气)2001-11-11 11:03:02 在 Web 开发 / ASP 提问

怎样用ASP写库?读库? 问题点数:34、回复次数:3Top

1 楼tonnycncn(托尼)(weiw.com)回复于 2001-11-11 13:53:04 得分 0

用纯ASP代码实现图片上传并存入数据库中  
  http://xin/hw/webnet/asp/tech/01110503.htmTop

2 楼hvq(程序员.net)回复于 2001-11-11 14:58:50 得分 34

试试我写的上传类!  
  <HTML>  
  <HEAD>  
  <TITLE></TITLE>  
  </HEAD>  
  <style   type="text/css">  
  <!--  
  body   {font-size:11pt;ext-decoration:none}  
  -->  
  </style>  
  <BODY>  
   
  <P>&nbsp;</P>  
  <FORM     name=form1   action="up.asp"   method=post   enctype="multipart/form-data">  
      表单元素一(文本一):    
      <INPUT   type="text"   id=text1   name=text1>  
      <BR>  
      表单元素二(文件一):    
      <INPUT   type="file"   id=file1   name=file1>  
      <BR>  
      表单元素三(文件二):    
      <INPUT   type="file"   id=file1   name=file1>  
      <BR>  
      表单元素四(文本二):    
      <INPUT   type="submit"   value="提交"   id=submit1   name=submit1>  
   
  </FORM>  
   
  </BODY>  
  </HTML>  
   
   
  <HTML>  
  <HEAD>  
  <TITLE></TITLE>  
  </HEAD>  
  <style   type="text/css">  
  <!--  
  body   {font-size:11pt;ext-decoration:none}  
  -->  
  </style>  
  <BODY>  
  <%   '文件表单上传类   表单Form应有属性:enctype="multipart/form-data"  
  Class   FileForm    
  Private   formdata,divstr,flagstr,startaddr,endaddr  
  Sub   InitForm       '表单数据初始化  
        Dim   formsize,firstaddr  
        formsize=request.totalbytes  
        formdata=request.binaryread(formsize)    
        divstr=chrB(13)   &   chrB(10)   &   chrB(13)   &   chrB(10)     '两个回车换行符作为前分隔符  
        firstaddr=instrb(1,formdata,chrB(13)   &   chrB(10))-1     '第一个回车换行前一位置,即后分隔符尾位置  
        'firstaddr即为后分隔符的长度  
        flagstr=midb(formdata,1,firstaddr)     '开始的一段字符作为后分隔符  
        startaddr=firstaddr    
        endaddr=startaddr  
        filelen=0  
  End   Sub  
       
  Private   Function   chrtob(str)   '将ASCII码字符串转化为二进制流(字节数据)  
      dim   temp,i  
      temp=""  
      for   i=1   to   len(str)  
          temp=temp&chrb(ascb(mid(str,i,1)))  
      next  
      chrtob=temp  
  End   Function    
   
  Private   Function   btochr(strb)   '转换二进制数据为普通字符  
      dim   tname,i  
      tname=""      
      for   i=1   to   lenb(strb)  
          tname=tname   &   chr(ascb(midb(strb,i,1)))  
      next  
      btochr=tname  
  End   Function  
   
  Private   Function   btostr(strb)   '转换二进制数据为普通字符(支持中文)  
      dim   skipflag,ccc,i,clow  
      skipflag=0  
      ccc=""  
      For   i=1   To   LenB(strb)  
            If   skipflag=0   Then  
                  clow=MidB(strb,i,1)  
                  If   AscB(clow)   >   127   Then  
                        ccc=ccc   &   Chr(AscW(MidB(strb,i+1,1)   &   clow))  
                        skipflag=1  
                  Else  
                        ccc=ccc   &   Chr(AscB(clow))  
                  End   If  
            Else  
                      skipflag=0  
            End   If  
      Next  
      btostr=ccc  
  End   Function  
   
  Private   Function   FindLast(sourceb,findb)   '找到findb指定在sourceb中的位置   没找到返回0  
      dim   flagaddr,tempaddr,tstart,tend,findaddr  
      flagaddr=0  
      tstart=1  
      tend=lenb(sourceb)  
      tempaddr=tstart  
      findaddr=0  
      while   tempaddr<tend  
          flagaddr=instrb(tempaddr,sourceb,findb)  
          if   flagaddr=0   then  
              tempaddr=tend  
          else    
              tempaddr=flagaddr+1  
              findaddr=flagaddr  
          end   if    
      wend  
      FindLast=findaddr  
  End   Function  
     
  Function   GetText     '取得文本数据  
      dim   tempstr  
      startaddr=instrb(endaddr,formdata,divstr)+4   '加前分隔符长得串首位置  
      endaddr=instrb(startaddr,formdata,flagstr)-2   '减一回车换行符长得串尾后一位置  
      tempstr=midb(formdata,startaddr,endaddr-startaddr)   '得到文本数据的二进制数据  
      GetText=btostr(tempstr)   '转换为普通字符  
  End   Function            
         
  Function   GetFileData   '取得文件数据,为二进制  
      dim   tempstr  
      startaddr=instrb(endaddr,formdata,divstr)+4   '加前分隔符长得串首位置  
      endaddr=instrb(startaddr,formdata,flagstr)-2   '减一回车换行符得串尾后一位置  
      tempstr=midb(formdata,startaddr,endaddr-startaddr)   '串尾后一位置减串首位置为串的长度  
      GetFileData=tempstr  
  End   Function      
         
  Function   GetFileSize   '取得文件大小,只能在用GetFileData之后使用  
      GetFileSize=endaddr-startaddr   '为实际文件大小LenB(GetFileData)  
  End   Function  
   
  Function   GetFileType     '取得文件类型,只能在用GetFileData之前使用  
        dim   typeflag,tstart,tend,ttype  
        typeflag=chrtob("Content-Type:   ")   '长度为14  
        tstart=instrb(endaddr,formdata,typeflag)+14   '文件类型首字符处  
        tend=instrb(tstart,formdata,divstr)   '文件类型尾字符处  
        ttype=midb(formdata,tstart,tend-tstart)  
        GetFileType=btochr(ttype)  
  End   Function  
   
  Function   GetFileExt     '取得文件后缀,只能在用GetFileData之前使用  
      dim   typeflag,tstart,textend  
      typeflag=chrtob("Content-Disposition:   form-data;   ")   '长度为32  
      tstart=instrb(endaddr,formdata,typeflag)+32  
      tend=instrb(tstart,formdata,chrB(13)&chrB(10))   '回车换行  
      textend=midb(formdata,tstart,tend-tstart)  
      tstart=FindLast(textend,chrb(46))   '"."为46  
      textend=midb(textend,tstart+1,lenb(textend)-tstart-1)    
      GetFileExt=btochr(textend)  
  End   Function  
   
  Function   GetFileName     '取得文件名,只能在用GetFileData之前使用  
      dim   typeflag,tstart,tempstr  
      typeflag=chrtob("Content-Disposition:   form-data;   ")   '长度为32  
      tstart=instrb(endaddr,formdata,typeflag)+32  
      tend=instrb(tstart,formdata,chrB(13)&chrB(10))   '回车换行  
      tempstr=midb(formdata,tstart,tend-tstart)  
      tstart=FindLast(tempstr,chrb(92))   '"\"为92  
      if   tstart=0   then  
            GetFileName="非法文件"  
      else  
          tempstr=midb(tempstr,tstart+1,lenb(tempstr)-tstart-1)    
          GetFileName=btostr(tempstr)  
      end   if  
  End   Function  
  End   Class  
  %>  
  <%  
  Response.Expires=0  
  response.buffer=true  
  Response.Clear    
   
  set   ffm=   new   FileForm  
  ffm.InitForm    
  '有四个表单元素  
  response.write   "文本一数据:"   &"<BR>"  
  Response.Write   ffm.GetText()     &"<BR><BR>"  
   
  response.write   "文件一数据:"   &"<BR>"  
  response.write   "文件名:"&   ffm.GetFileName()   &"<BR>"  
  response.write   "文件类型:"&   ffm.GetFileType()   &"<BR>"  
  ffm.GetFileData()   '文件内容  
  response.write   "文件大小:"&   ffm.GetFileSize()   &"<BR>"&"<BR>"  
   
  response.write   "文件二数据:"   &"<BR>"  
  response.write   "文件名:"&   ffm.GetFileName()   &"<BR>"  
  response.write   "文件类型:"&   ffm.GetFileType()   &"<BR>"  
  ffm.GetFileData()   '文件内容  
  response.write   "文件大小:"&   ffm.GetFileSize()   &"<BR><BR>"  
   
  response.write   "文本二数据:"   &"<BR>"  
  Response.Write   ffm.GetText     &"<BR><BR>"  
   
  %>  
  </BODY>  
  </HTML>  
  Top

3 楼ksy(一定要争气)回复于 2001-11-12 13:27:06 得分 0

非常感谢楼上的仁兄,谢谢!Top

相关问题

  • 怎样用vb编程在access数据库中存取图片?
  • 怎样用vb.net存取oracle数据库中的图片
  • 如何存取数据库图片呢?
  • 从数据库中存取图片,
  • 数据库存取图片问题!!
  • 急急~~~~~~~~~~!用ASP代码,怎样以二进制形式把图片存取在ACCESS数据库里面
  • 请教一下-数据库存取图片的问题
  • 如何往数据库存取jpg图片,望指教
  • 怎么存取图片(*.jpg)到数据库的某个字段?
  • 怎么样在数据库里面存取图片?

关键词

  • 文件
  • 数据
  • ffm
  • sourceb
  • tempaddr
  • tstart
  • ccc
  • response
  • write

得分解答快速导航

  • 帖主:ksy
  • hvq

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo