不帅 发表于 2015-1-16 22:14:13

ASP网站制作之ASP程序显现以OLE工具存储图片的办法

国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了程序|工具|显现  在ASP中,我们常常必要在Web页面上显现以二进制体例保留在数据库中的图片。一样平常的图片显现没有甚么成绩,由于这方面的文章已良多了,我就不再论述。但偶然候数据库中的图片是经由过程其他办公软件输出的,大概经由过程其他体例,好比在Access中间接增加。
  这时候,图片以OLE工具的体例保留在数据库中,在图片实在内容的后面,还保留了一些其他的信息,好比图片的路径和文件名,等等。假如我们还用一样平常的输入体例的话,就会堕落,招致图片不克不及显现。
  
  幸亏jpeg,bmp等图像格局中在图片内容的开首都有一个SOImarker,这个marker关于jpeg来讲是FFD8,而关于bmp是424D.如许一来,我们只需找到这个marker的地位,就能够疏忽后面的内容而间接从这里入手下手输入图片。以SQLserver为例,代码以下:
  
  <%
  ---------------------------------
  函数:functionShowJpegField(field)
  功效:获得保留jpeg图片的字节数组中的SOImarker入手下手地位,并从该地位输入真实的图片信息
  注:jpeg格局的SOImarker:FFD8
  bmp格局:424D
  参数:图片字段
  前往值:无
  挪用典范:ShowJpegField(rs("picture1"))
  注重:挪用此函数之前,必要先声名response.write的MIME范例为"image/jpeg"
  ----------------------------------------
  functionShowJpegField(field)
  dimsize,i,j
  要输入字段的总字节数
  size=field.ActualSize
  轮回找到SOImarker的地位
  fori=1tosize
  ifAscB(MidB(field,i,1))=&HFFandAscB(MidB(field,i+1,1))=&HD8then
  exitfor
  endif
  next
  
  疏忽后面的无用信息,从SOImarker入手下手输入真实的图片信息
  forj=itosize
  response.BinaryWriteMidB(field,j,1)
  next
  endfunction
  %>
  
  <%
  --------主程序入手下手-------------------
  dimconn
  setconn=Server.CreateObject("ADODB.Connection")
  conn.open("Provider=SQLOLEDB.1;Password=sa;PersistSecurityInfo=True;UserID=sa;InitialCatalog=123;DataSource=MARK")
  
  sql="select*fromxinxi_mishuchu"
  setrs=conn.execute(sql)
  
  声明输入范例,清空输入缓冲区
  response.buffer=true
  response.clear
  response.ContentType="image/jpeg"
  
  挪用函数输入图片
  ShowJpegField(rs("picture1"))
  
  打完收功!
  rs.close:setrs=nothing
  conn.close:setconn=nothing
  %>
  
  假如是其他格局的图片,如bmp,gif等,输入办法相似,只不外是SOImarker分歧罢了。
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!

不帅 发表于 2015-1-19 05:37:07

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

再现理想 发表于 2015-1-25 11:36:37

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

小魔女 发表于 2015-2-2 22:00:24

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

admin 发表于 2015-2-8 08:50:17

那么,ASP.Net有哪些改进呢?

柔情似水 发表于 2015-2-25 06:49:49

掌握asp的特性而且一定要知道为什么。

灵魂腐蚀 发表于 2015-3-7 17:34:00

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

因胸联盟 发表于 2015-3-15 10:37:35

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

活着的死人 发表于 2015-3-22 00:15:06

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
页: [1]
查看完整版本: ASP网站制作之ASP程序显现以OLE工具存储图片的办法