专业品牌服务商:网站建设、网站设计、网站优化、网络推广、软件开发等
2010年07月31日解决方案

0 Comments

用asp获得图片长和宽的函数

有时候需要在服务器断判断用户上传上来的图片的长和宽。。比如,你做一个LOGO的连接位置,限定的图片大小为100*100,但如果用户传上的图片LOGO超过了,这个限制,可能前台就觉得很丑了,于是我们可以用以下函数判断获得图片长和宽的函数进行判断:

‘用asp获得图片长和宽的函数

<%
Class ImgWHInfo ‘获取图片宽度和高度的类,支持JPG,GIF,PNG,BMP
     Dim ASO
     Private Sub Class_Initialize
         Set ASO=Server.CreateObject(“ADODB.Stream”)
         ASO.Mode=3
         ASO.Type=1
         ASO.Open
     End Sub
     Private Sub Class_Terminate
         Err.Clear
         Set ASO=Nothing
     End Sub

     Private Function Bin2Str(Bin)
         Dim I, Str
         For I=1 To LenB(Bin)
             clow=MidB(Bin,I,1)
             If ASCB(clow)<128 Then
                 Str = Str & Chr(ASCB(clow))
             Else
                 I=I+1
                 If I <= LenB(Bin) Then Str = Str & Chr(ASCW(MidB(Bin,I,1)&clow))
             End If
         Next
         Bin2Str = Str
     End Function
      
     Private Function Num2Str(Num,Base,Lens)
         Dim Ret
         Ret = “”
         While(Num>=Base)
             Ret = (Num Mod Base) & Ret
             Num = (Num – Num Mod Base)/Base
         Wend
         Num2Str = Right(String(Lens,”0″) & Num & Ret,Lens)
     End Function
      
     Private Function Str2Num(Str,Base)
         Dim Ret,I
         Ret = 0
         For I=1 To Len(Str)
             Ret = Ret *base + Cint(Mid(Str,I,1))
         Next
         Str2Num=Ret
     End Function
      
     Private Function BinVal(Bin)
         Dim Ret,I
         Ret = 0
         For I = LenB(Bin) To 1 Step -1
             Ret = Ret *256 + AscB(MidB(Bin,I,1))
         Next
         BinVal=Ret
     End Function
      
     Private Function BinVal2(Bin)
         Dim Ret,I
         Ret = 0
         For I = 1 To LenB(Bin)
             Ret = Ret *256 + AscB(MidB(Bin,I,1))
         Next
         BinVal2=Ret
     End Function
      
     Private Function GetImageSize(filespec)
         Dim bFlag
         Dim Ret(3)
         ASO.LoadFromFile(filespec)
         bFlag=ASO.Read(3)
         Select Case Hex(binVal(bFlag))
         Case “4E5089″:
             ASO.Read(15)
             ret(0)=”PNG”
             ret(1)=BinVal2(ASO.Read(2))
             ASO.Read(2)
             ret(2)=BinVal2(ASO.Read(2))
         Case “464947″:
             ASO.read(3)
             ret(0)=”gif”
             ret(1)=BinVal(ASO.Read(2))
             ret(2)=BinVal(ASO.Read(2))
         Case “535746″:
             ASO.read(5)
             binData=ASO.Read(1)
             sConv=Num2Str(ascb(binData),2 ,8)
             nBits=Str2Num(left(sConv,5),2)
             sConv=mid(sConv,6)
             While(len(sConv)<nBits*4)
                 binData=ASO.Read(1)
                 sConv=sConv&Num2Str(AscB(binData),2 ,8)
             Wend
             ret(0)=”SWF”
             ret(1)=Int(Abs(Str2Num(Mid(sConv,1*nBits+1,nBits),2)-Str2Num(Mid(sConv,0*nBits+1,nBits),2))/20)
             ret(2)=Int(Abs(Str2Num(Mid(sConv,3*nBits+1,nBits),2)-Str2Num(Mid(sConv,2*nBits+1,nBits),2))/20)
         Case “FFD8FF”:
             Do  
             Do: p1=binVal(ASO.Read(1)): Loop While p1=255 And Not ASO.EOS
             If p1>191 And p1<196 Then Exit Do Else ASO.read(binval2(ASO.Read(2))-2)
             Do:p1=binVal(ASO.Read(1)):Loop While p1<255 And Not ASO.EOS
             Loop While True
             ASO.Read(3)
             ret(0)=”JPG”
             ret(2)=binval2(ASO.Read(2))
             ret(1)=binval2(ASO.Read(2))
         Case Else:
             If left(Bin2Str(bFlag),2)=”BM” Then
                 ASO.Read(15)
                 ret(0)=”BMP”
                 ret(1)=binval(ASO.Read(4))
                 ret(2)=binval(ASO.Read(4))
             Else
                     ret(0)=”"
             End If
         End Select
         ret(3)=”width=”"” & ret(1) &”"” height=”"” & ret(2) &”"”"
         getimagesize=ret
     End Function
      
     Public Function imgW(IMGPath)
         Dim FSO,IMGFile,FileExt,Arr
         Set FSO = Server.CreateObject(“Scripting.FileSystemObject”)
         If (FSO.FileExists(IMGPath)) Then
             Set IMGFile = FSO.GetFile(IMGPath)
             FileExt=FSO.GetExtensionName(IMGPath)
             Select Case FileExt
                 Case “gif”,”bmp”,”jpg”,”png”:
                 Arr=GetImageSize(IMGFile.Path)
                 imgW = Arr(1)
             End Select
             Set IMGFile=Nothing
         Else
             imgW = 0
         End If     
         Set FSO=Nothing
     End Function
     
     Public Function imgH(IMGPath)
         Dim FSO,IMGFile,FileExt,Arr
         Set FSO = server.CreateObject(“Scripting.FileSystemObject”)
         If (FSO.FileExists(IMGPath)) Then
             Set IMGFile = FSO.GetFile(IMGPath)
             FileExt=FSO.GetExtensionName(IMGPath)
             Select Case FileExt
                 Case “gif”,”bmp”,”jpg”,”png”:
                 Arr=getImageSize(IMGFile.Path)
                 imgH = Arr(2)
             End Select
             Set IMGFile=Nothing
         Else
             imgH = 0
         End If     
         Set FSO=Nothing
     End Function
End Class
%>

函数调用:

<%

    IMGPath=”图片的路径与文件名”
    Set PP=New ImgWHInfo
    pic_width = PP.imgW(Server.Mappath(IMGPath))
    pic_height = PP.imgH(Server.Mappath(IMGPath))
    Set PP=Nothing

%>

JS的灯箱插件Shadowbox,支持图片、视频、网页、flash、FLV等媒体轮播

Shadowbox.js是一个基于网络浏览器的应用程序,支持网络上最流行的媒体格式。使用Shadowbox访问各式各样的媒体时,用户可以直接在所有主流的浏览器中浏览,而且不用去打开一个新的媒体页。
这里说媒体主要包括:图片,SWF,QuickTime,Video和一些网络Video等等。

Shadowbox使用Javascript和CSS编写,可以定制当前非常流行的各种JS库,比如说:
* jQuery
* Prototype
* MooTools (requires 1.2 Core)
* Dojo Toolkit
* Yahoo! User Interface Library (requires yahoo-dom-event.js)
* Ext (requires ext-core.js)
所以大家还是非常值得一试的,下面是它的官方网站和下载地址,下载的时候可以选择你所使用JS库文件和你所希望播放的媒体:
官方地址:http://www.shadowbox-js.com/index.html
下载地址:http://www.shadowbox-js.com/download.html

下面给给大家介绍一下这个应用的具体用法,最简单的办法就是在你建立应用的页面头部加入下载的JS文件和CSS文件,然后调用Shadowbox.init:

<link rel=”stylesheet” type=”text/css” href=”shadowbox.css”>
<script type=”text/javascript” src=”shadowbox.js”></script>
<script type=”text/javascript”>
Shadowbox.init();
</script>

当然在头部还需要把你使用JS库加到前面。还有一个比较复杂的方法,就是在调用Shadowbox.init的时候,使用对象来指定一些选项,这样可以实现一些复杂的效果。

<link rel=”stylesheet” type=”text/css” href=”shadowbox.css”>
<script type=”text/javascript” src=”shadowbox.js”></script>
<script type=”text/javascript”>
Shadowbox.init({
        handleOversize: “drag”,
        modal: true
    });
</script>

关于Shadowbox的复杂用法我会在下一篇文章里详细介绍。当我们加入所需要的JS库和CSS文件以后,就要告诉shadowbox对哪些链接执行这些操作了。要执行这个操作有两种方法,一个是在链接的标签里添加属性,还有一个方法是用Javascript对Shadowbox进行设置。

在这篇文章主要介绍在链接的标签里添加属性,只要在链接里增加一个属性rel=”shadowbox”就可以了。假设你页面里有一个这样的链接:

<a href=”myimage.jpg”>My Image</a>

要建立shadowbox的效果之需要修改成这样即可:

<a href=”myimage.jpg” rel=”shadowbox”>My Image</a>

这时当你点击它的时候,就会在本页面打开一个弹出层来显示href里的图片。这种方法对于页面展示小图,点击以后展示大图有着很好的用户体验。这种效果就和lightbox展示的效果一样。(如果大家对lightbox不熟悉的话,我会在以后的文章中详细介绍它的主要用法)

如果你想显示图片标题,只需在链接属性里添加一个title。

<a href=”myimage.jpg” rel=”shadowbox” title=”My Image”>My Image</a>

如果你想给弹出来的媒体设定长与宽的话,只要在rel属性中添加width和height就可以,用”;”号隔开,默认是以Pixel为单位,

<a href=”mymovie.swf” rel=”shadowbox;height=140;width=120″>My Movie</a>

除了显示单张图片和电影以外,还可以显示画廊效果,如果想显示这一效果之需要在rel的shadowbox后面紧跟着一个用中括号括起来的画廊名字,这个名字是随便起的,不过需要注意的是,画廊名字相同的图片是在一个画廊里,下面以画廊名为“Vacation”的两个图片做为例子:

<a href=”beach.jpg” rel=”shadowbox[Vacation]“>The Beach</a>
<a href=”pier.jpg” rel=”shadowbox[Vacation]“>The Pier</a>

画廊可能由许多不同类型的内容。下面的标记显示不同的媒介,如何能成为一个单一的库相结合。

<a rel=”shadowbox[Mixed];” href=”myimage.jpg”>jpg</a>
<a rel=”shadowbox[Mixed];width=520;height=390″ href=”myswf.swf”>swf</a>
<a rel=”shadowbox[Mixed];width=292;height=218″ href=”mymovie.mp4″>movie</a>
<a rel=”shadowbox[Mixed]” href=”mywebsite.html”>iframe</a>

这篇文章先介绍这么多,熟悉这些用法,就可以在自己的页面里添加Shadowbox的效果了。在后面的文章里我会继续介绍Shadowbox的其他一些用法。

国务院发文取消网络论坛审批备案

 

中国网7月12日报道 “在开始本文之前,我真诚地说一句:‘感谢国家,感谢政府’。”7月10日,华军软件园网站主编米晓彬在一篇题为《取消行政审批带来的互联网利好》的分析文章开头这样写道。他所说的利好,是指“互联网电子公告服务专项审批(备案)”这项与互联网相关的行政审批被取消的消息。

这个消息给了中国互联网、特别是中小网站站长一个“巨大的惊喜”,BBS专项审批10年,此前几乎没有人想到其会被取消。有个人站长欢呼“春天来了”,也有业内人士表示谨慎乐观,认为后续政策还需观望。

10年审批终到头

7月9日,国务院办公厅在中央政府网上公布了《国务院关于第五批取消和下放管理层级行政审批项目的决定》,在被国务院取消的113项行政审批项目中,其中的第七项是“互联网电子公告服务专项审批(备案)项目”。

在实施了9年11个月之后,这条被很多站长看成是“紧箍咒”的行政专项审批至此终结。根据信产部2000年10月颁布的《互联网电子公告服务管理规定》,所谓的“电子公告服务”,是指在互联网上以电子布告牌、电子白板、电子论坛、网络聊天室、留言板等交互形式为上网用户提供信息发布条件的行为。

2000年9月20日国务院第31次常务会议通过《互联网信息服务管理办法》,其中的第九条规定,“从事互联网信息服务,拟开办电子公告服务的,应当在申请经营性互联网信息服务许可或者办理非经营性互联网信息服务备案时,按照国家有关规定提出专项申请或者专项备案”。对此,业内通常简称为“BBS专项备案”。

一个月后,当时的信产部对此出台了具体的实施细则,即《互联网电子公告服务管理规定》,其中的第八条规定“未经专项批准或者专项备案手续,任何单位或者个人不得擅自开展电子公告服务”。

2010年7月,这项审批终于走到了终点。

个人网站很少能通过该审批

取消审批的消息传出,在互联网业内引起关注,特别是在中小站长中间。“这可能是在过去一年里,唯一的利好消息。”提到这条消息,某IDC接入商的负责人对南都记者分析说。

去年下半年,肇始于工信部等国家9部委的整治互联网手机色情淫秽信息行动,一度被认为是中国管制最少、准入门槛最低、竞争最充分的互联网行业,掀起了轰轰烈烈的整治行动。备案核查、封机(房)排查、白名单制度……从工信部到电信等基础运营商再到ID C接入商,一系列组合重拳打出,很多个人网站应声倒下。

对中小站长来说,“BBS专项备案”更像是一道“紧箍咒”。虽然《互联网信息服务管理办法》和《互联网电子公告服务管理规定》,个人网站在通过ICP审查,也可以申请开办电子公告服务,但从业内反馈的信息来看,能够获得BBS专项审批许可的少之又少。

“只要申请BBS专项备案,就被认定为从经营性互联网信息服务,而后者又不许取得行政许可(ICP证),但申请ICP证的其中一个要求,就是企业的注册资金要达到100万”,前述ID C负责人介绍说,在实际操作中,很少有个人网站能够通过BBS专项备案审查。

艰难的个人网站BBS服务

很多地方通管局在受理BBS专项备案时,增加了很多苛刻的条件。《南方人物周刊》一篇与此相关的文章曾介绍说,“有人统计了各省市通信管理局受理BBS专项备案的条件,在福建,版主必须为大学本科学历以上;在广西,服务器须在广西境内;在云南,则必须实行论坛24小时值班制;而在北京、广东、浙江、山东等大多数省市,个人论坛根本不予受理。

尽管如此,依然有大量网站在没有通过专项审批的情况下在开办BBS服务。“网站没有互动就没有生命力,包括最近流行的SNS网站、微博,更是代表了这种方向”,知名IDC接入商炎黄网络的副总经理管鹏向南都记者介绍说,很多ID C商在实际操作中默认了这种情况,“人家其实也没有违法内容”。

“这是一种进步”

取消“BBS专项备案”的消息引发业内的极大关注。很多人在业内网站、论坛上发表博文、帖子“奔走相告”这一消息。显然,支持者众多,有人甚至用“BBS的春天”、“普天同庆”来形容。

在华军软件园网站主编米晓彬看来,对创业者来说,取消“互联网电子公告服务专项审批(备案)”无疑是降低了进入门槛。

“对于互联网创业者来说,多一个社区、论坛这样的产品,肯定能吸引更多的用户”,管鹏向南都记者分析说,由于门户网站往往更容易取得BBS专项审批,因此此次政策影响最大的应该是中小站长,“对前者来说,可能觉得不公平,毕竟他们申请时付出了一些,但是一旦出现中小站长的竞争,对丰富互联网来说,肯定是好事情”。

更重要的是,对BBS备案审查的开放,也会增加网民的言论平台,“这是一种进步”。

从行政审批到内容管理?

同时让米晓彬关心的是,工信部在取消这项审批之后,是不是意味着电子公告服务真的不再需要审批、不再面临监管,因为互联网本来就是内容纷繁复杂的,“总是要管理的”。

他的这种猜测得到了很多站长的认同。在微博上,记者看到不少站长在讨论此事时流露出这样的担心,“其他部门会不会趁机把这个取消的又变相地给启用了其他的许可”,“会不会是针对SNS以及微博的,综合出一个新的审批?”。

而在管鹏看来,取消对BBS备案的审批,并不意味着网民在论坛上可以随意发帖,因此相关的责任将会落到互联网内容监管的部门,“可能公安部门的压力会更大”。

同时在他看来,后续也可能会出台一些强化网民言论责任的措施,“比如网络实名制”。

网站拍照备案正式启动

          悬在众多个人站长头上的那只靴子终于落下来了,网站拍照备案近日正式启动。

         记者从万网上海分公司得到消息,从6月底开始到7月6日,已经有50多名企业负责人和站长到其公司拍照备案。万网上海分公司副经理高海明向记者介绍,这50多名人员主要是阿里巴巴诚信通会员和万网的新客户。万网是阿里巴巴旗下的成员。

15分钟完成拍照备案

        7月6日,记者在万网上海分公司采访的短短30分钟内,遇到3批来拍照备案的人员。先由站长填写签署由工信部统一下发的《信息安全管理协议》和《网站备案信息真实性校验单》,并提交相关证明原件,然后由万网工作人员逐个审核信息的准确性,审核完毕后,再进行拍照。拍照完毕后,由万网工作人员在线传到其北京总部的系统中,再向北京市备案管理系统提交申请,整个流程只需要15分钟左右。

        万网拍照地点就设在公司大门进门处,一面白墙上面悬挂着一幅幕布,幕布背景是按照工信部统一要求制作的图样。幕布前有一张办公椅,拍照者坐在椅子上后,由万网工作人员手持数码相机对准拍照即可。

        一位开设小商品电子商务网站的严先生接受记者采访时表示,5月底他在万网注册域名后就开始做网站的准备工作,但6月18日提交备案申请后没有通过,其后工信部在原网站备案管理系统(http://www.miibeian.gov.cn)中关闭了新网站备案业务申请。所以一直拖到现在才来万网拍照,再次提交备案申请。

9月底前需全部完成

        据公开文件显示,工信部系统网站备案管理系统升级时间为6月19日18时到7月25日24时。在此期间,原网站备案管理系统(http://www.miibeian.gov.cn)停止接收新的网站备案业务,仅提供系统查询服务。6月20日起,新申请网站备案的网站主办者,通过新系统(http://www.miitbeian.gov.cn)办理网站备案业务。6月20日至7月5日,暂停办理网站备案变更申请。而另据记者了解,工信部要求在9月底前,接入商要完成对其接入网站备案信息的自查、更新工作。

        按照工信部公布的流程,具体负责审核事宜的是接入商所在地的通信管理局。通信管理局收到备案申请后,在20个工作日内会通知是否审核通过,审核通过的话,会给站长发备案号,同时将相关信息提交到工信部备案系统中。

        上海电信负责备案工作的丁桥告诉记者,上海电信为拍照备案专门准备了一间办公室,目前只启用了两个工位中的一个,预计到拍照高峰期会全部启用。

外地站长或可跨省拍照

        从拍照备案规定出台后,购买外地服务器空间的网站站长如何拍照,变成众人讨论的焦点。在站长网(admin5.com)上,一位网站服务器在西安的成都站长,把跨省拍照戏称为旅游,“各位长期蜗居在家的站长们,何不借此机会走出去,饱览异地风光。”但同样也有不少站长在抱怨,异地拍照备案是劳民伤财。

        据高海明向记者解释,按照工信部的要求,拍照备案是谁接入谁负责的原则。外地网站如果由万网上海分公司负责接入,原则上站长需要到上海来拍照备案。“不过万网在全国有比较多的分公司,外地站长可以就近到当地分公司拍照备案,不需要赶到上海来。”高海明还透露,万网还会考虑在拍照备案比较集中,而又没有分公司的城市,增设办事处,以方便站长就近拍照。

        至于不少站长所关心的6月19日前通过备案的网站,是否需要重新拍照的问题,记者发现各地的做法并不一致。上海市通信管理局负责此项工作的人士明确告诉记者,需要重新到接入商处拍照备案。江苏和安徽的两家接入商也明确表示之前已经备案过的网站需要重新拍照,并进行现场备案信息真实性核验。但河北的一家接入商则表示接到通知,只要有真实性核验工作即可,不用再拍照。

返回顶部