2024年6月20日发(作者:)
第25卷第5期
2012年l0月
濮阳职业技术学院学报
Journal of Puyang Vocational and Technical College
Vo1.25 No.5
0ct.201 2
用ASP实现网络照片发布
苗英恺
(濮阳职业技术学院实训中心.河南濮阳457000)
摘 要:本文用ASP程序实现了照片在线浏览、下载等功能,对于需要将大量照片在局域网上发布的单位或部门提供了技术支
持
关键词:ASP编程:照片:网络发布
中圈分类号:TP311 文献标识码:A 文章编号:1672—9161(2012)05—0150—03
学校教育技术中心保存有大量学校各种活动的
一
对应起来。
浏览照片之前首先要有缩略图文件.这是必须
照片,各系、部每次需要时,都要派人到教育技术中
心来查询、挑选、拷贝,十分麻烦。如果能将这些照片
的。如果不使用缩略图,网络直接传输原照片,然后
在IE浏览器中缩小显示,速度会慢得难以忍受。
程序实现的方框图如图1所示。
在校园网上发布出来,各系、部就随时都可以浏览、
检索、下载
为此,笔者首先想到利用 P服务器进行发
布,但是这种方法只能先将文件夹下载到本机后才
能进行浏览,不能在线浏览。有的文件夹有上千张照
片,体积非常庞大,即使在校园局域网内下载。也要
耗费很长时间。若发现下载的文件夹中根本没有所
需要的照片,更是令人大失所望。
于是。笔者设想。能不能用ASP程序实现照片
在线浏览、下载等功能呢?经过精心的编制和调试,
乍成要扣开的文件夹的缩
略图文件夹路 字符书
上
调刚asp文件系统细
及jpeg组 {:
终于实现了所需要的各种功能。
一
Jr
扫描要打开的文件夹 的
、
功能需求
子文件夹,显示其 标和
名字, 建立链接。
该程序要求不使用数据库,在不改变原硬盘文
件存放位置的前提下,在IE浏览器里直接显示照片
缩略图和子文件夹。单击缩略图可显示出原照片文
件,单击子文件夹图标,可显示子文件夹的内容。
二、功能实现
Jr
扫描要打开的文什夹卜的
照片文件,十成缩略 ,显
示,许建立链接。
该源程序放在服务器上.其存放路径为当前路
径..当前路径下有两个文件夹,一个文件夹名为“照
片”,存放全部要发布的照片原文件;另一个文件夹
l
I注销绀什I
名为“small一照片”,存放所有照片的缩略图。缩略图
文件和缩略文件夹名字均采用“small_”前缀+原名
图1 程序实现方框图
的形式,这样可以使原图片文件与其缩略图文件一
收稿日期:2012-05—07
作者简介:苗英恺(1972一),男,濮阳职业技术学院实训中心副教授,教育技术学硕士,研究方向为计算机辅助教学。
150—
功能实现的关键技术有三个方面:①生成原照
片的缩略图;②扫描并显示一个文件夹中所存放内
容;③点击子文件夹图标后程序重载入,以显示其内
容。
程序中利用aspjpeg组件可生成一个图片文件
的缩略图。Aspjpeg组件是一款功能强大的基于MS
IIS环境的图片处理组件,要在服务器端单独安装后
才能使用。
利用For Each循环和Folder对象的SubFolders
属性.对文件夹中的所有子文件夹进行扫描;利用
For Each循环和Folder对象的Files属性,扫描文件
夹中的所有图片文件。
利用Request.QueryString方法,获取到用户要
打开的子文件夹路径和名字,通过程序的重载人,显
示子文件夹的内容。
三、程序清单
源程序文件命名为zpfb.asp,清单如下:
<html>
<head>
<title>照片浏览</title>
<style type=”text/css”>
<!一一
.
style4{
font-size:l OOpx;
color"#000099;
)
--
>
</style>
</head>
<body>
<%Server.ScriptTimeOut=1 0000%>7/指
定脚本在结束前最大可运行多长时间。
<script language=”javascript”runat=”serv-
er”>
function GG2UTF8(str)
{return enc0deURIC0mp0nent(str))
</script>
<%
dim currentPath,strDir,backStrDir
currentPath=Server.MapPath(”.”1
If Request.QueryString(”strDir”1-…’Then
strDir=Server.MapPath(”照片”1
Else
strDir=currentPath&Request.QueryString(”
strDir”)
End If
backStrDir=Mid(strDir,len(currentPath)+1)
backStrDir=replace (backStrDir," ”
\sma11
一
”),//生成缩略图文件夹路径字符串。
%>
<center>
<%
Dim my File Object,my Folder,Small Fold—
er,Item,File Extn,Iteml
Dim Jpeg //声明变量
Set myFileObject=Server.CreateObject(”
Scripting.FileSystem0bject”)
Set myFolder=myFileObject.GetFolder
(strDir)
Set Jpeg=Server.CreateObject fIIPersits.
Jpeg”)"//NN jpge组件。
SmallFolder=currentPath&backStrDir
If myFileObject.FolderExists(SmallFolder)=
FALSE Then
myFileObject.CreateFolder SmallFolder
End If
Dim numFolder,numFile
numFolder=0
numFile=O
Response.Write”<Table style='word—break:
break-all ><tr align=center valign=top>’’
For Each Item In myFolder.SubFolders 7/显示
要打开的文件夹下所有子文件夹图标和名字,并对
其进行计数。
numFolder=numFolder+1
Response.Write”<th width=1 33><a href= ?
strDir=”&Mid(hem,len(currentPath)+1)&” target=
_
blank>”&”<Img alt= 点击打开 src=./folder.jpg><
h4>”&Item.Name&”<br><br></a><,th>” "//folder.
jpg为文件夹图标文件,可以自行设计,与本程序一
起存放在服务器同一文件夹下。
If numFolder Mod 8=0 Then Response.
Write”</tr><tr align=center valign=top>”
Next
一
151—
Response.Write”</Table>”
%>
Set myFolder=Nothing
Set myFileObject=Nothing,//注销组件,释放资
源。
%>
</center>
<%If numFolder<>0 Then Response.Write”<
br><b>共”&numFolder&”个文件夹</b>”%>
<br><br>
<%
</center>
</body>
</html>
For Each Item In myFolder.Files 7/将文件夹下 以上程序放在校园网服务器上,与存放照片的
文件夹置于同一个路径下。并在IIS中进行适当的
所有图片生成133"100像素的缩略图显示,并对其
计数。
FileExtn=Lease(Mid(Item.Name,inStrRev(Item.
Name,”.”)))
If FileExtn=”.JPg”or FileExtn=”.jpeg”or File—
Extn=".bmp”or FileExtn=".gif”or FileExtn=”_png”or
FileExtn=".tiff”or FileExtn=".dxf”or FileExtn=".svg”
or FileExtn=".pcx”then
If myFileObjeet.FileExists(SmallFolder&”
\Small
一
”&Item.Name)=FALSE Then
Jpeg.Open Item 7/原图位置
Jpeg.Width=133,//设图片宽度
Jpeg.Height=100 设图片高度
Jpeg.Sharpen 1.130 //设定锐化效果
Jpeg.Save SmallFolder&”\Small_"&Item.
Name"//生成缩略图位置及名称。
En({If
numFile=numFile+1
Item1=replace((GG2UTF8(Item)),"%5C”.”/It1
Response.Write”<a href ̄*./fI&Mid(Item1.1en(re—
place((GC2UTF8(currentPath)),"%5C”,”/”))+2)&”
target=一blank>”&”<Img alt= 点击看大图 src=./ff
&Mid fbackStrDir,2)&”\Small_"&Item.Name&”
style= border:5px solid white ></a>” "//在该页显示
缩略图,并设置链接。
End If
Next
If numFile<>0 Then Response.Write”<br><br><
h>共”&numFile&”张照片</b>”
If numFolder=0 and numFile=0 Then Response.
Write”<p class= style4 > </p><p align= center
class= style4 ><b><strong>啥都没有!</strong></b><
/p>”
Set Jpeg=Nothing
l52一
设置,即可在校园上浏览所有照片了。图2是一个文
件夹内容的浏览效果。
四、程序的改进
Zpfb.asp程序虽然能实现照片的在线浏览功
能,但要在服务器上先生成缩略图文件。一般第一次
打开一个文件夹较慢,之后,由于服务器上已存在有
该文件夹下照片的缩略图,打开速度就快了。为了避
免由于服务器上没有缩略图文件而造成的打开速度
慢的问题,我们可以事先在服务器上生成所有照片
的缩略图。当然不能靠人工点击每一个文件夹来实
现,而应该通过程序自动实现。
笔者另外编制了一个专门用来创建所有照片缩
略图的程序createsmal1.asp。程序运用递归的方法,
对“照片”文件夹内所有照片文件进行遍历,生成与
原照片文件存储结构相同的缩略图文件。该程序与
zpfb.asp程序放在同一文件夹下,每次添加一批新照
片后.在网上任意一客户端电脑IE浏览器地址栏中
访问执行一下该程序即可。如果照片数量很多,生成
缩略图耗费时间会较长,所以可以选择晚上服务器
空闲时段进行。由于是服务器端程序,客户端访问一
下陔程序后即可关闭,程序会在服务器端自动执行
完毕。由于篇幅限制,程序清单不再列出。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1718843661a2753010.html
评论列表(0条)