关于在网站中图片入库和管理!

原创 2004年10月15日 14:39:00

本人有多年开发网站的经验,对图片的上传及管理一直感到十分头痛。最早以前是用FTP上传图片,但每次上传时,客户端都要下载插件。到后来的无组件上传,虽然解决了无客户端,但图片在网站上的管理显得有点零乱:
  1、放图片目录要有可写,可删除的权限。
  2、不能重名,所以要解决图片命名的方法。
  3、比如图片是为发部新闻时上传的,当要删除该条新闻时,要另写代码对图片进行删除。因为权限的关系有可能,删除不了或者删除时页面运行的速度受影响。
  4、还会图片很容易被别的网站,盗链。

所以,我认为将各模块中所上传的图片入库,集中管理是有好处的!
具体操作:新建一张表,用于专门存放图片的二进数据,一个自动加一的ID号。上传图片时,将图片的二进制数据入库后,然后得到该图片的ID号,在引用图片的记录只要记录下该ID号即可!

入库程序(以ASP为例):
demo1.asp
<%
'picBriny 为图片二进制数据。至于如何从表单中得到图片二进制数据,可以到网上查找无组件上传原理
'表名pic
'列名image 用于存放图片的二进制数据 
'列名ID 自动加一
rs.Open "pic",conn,1,3
rs.AddNew()
rs.Fields("image").AppendChunk picBriny
rs.Update
'在这里就可以得到图片的ID号:rs.Fields("ID")
rs.Close
%>
图片显示的页面:
demo2.html
<html>
<head></head>
<body>
显示库中ID为1的图片
<img src='demo3.asp?id=1'>
</body>
</html>
     
图片出库程序(以ASP为例):
demo3.asp
<%
id=Request("id") 
rs.Open "select image from pic where id="&id,conn,1,1 
Response.BinaryWrite rs("image").getChunk(7500000)
rec.close
%>

综上所述可以解决上面的问题!
                1、图片放库后就脱离了目录,就不用理会权限问题!
                2、图片在表中都有自己的ID号,不会有重名问题!
                3、当引用图片的记录要被删除时,只需在库中多删除一条记录!           
                4、如要防止盗链只需在出库程序:demo3.asp 里加上验证即可!
                5、方便了其它各种对图片的管理!

         目前想到这么多,当然也带来一些问题:

         对系统数据库的要求提高了,上传几M的图片时可能速度会受影响,当然系统性能好的话,强烈推荐使用这种方案。
         代码比以前直接把图片放在目录下,复杂了!所以如果网站内图片用的地方不是很多的话,还是不要用这个方案!
    

大型web网站前端css\js\图片版本管理解决方案

前端页面加载过程 用户访问前端url链接时,会和本地已经缓存的url链接对比,如果一样,则会取本地前端文件进行渲染;如果不一样,则会向cdn发起请求,如果与cdn缓存的一致,则浏览器加载cdn里的u...
  • kapuliyuehan
  • kapuliyuehan
  • 2013年03月10日 19:54
  • 1966

自己写网页爬虫——网页分类抓取/采集并导入数据库

一直想着整理出网页抓取的具体实现功能代码,方便大家指正,也方便自己学习修正。当然这个并不是针对所有网页,自己写的功能有限,只能针对某一特定结构的网页进行数据采集,如果有更好的方法,请大家不吝指教,在此...
  • yiyelanxin
  • yiyelanxin
  • 2017年08月14日 16:18
  • 281

如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?

如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?(  (2013-07-15 20:33:09) 转载▼     ...
  • u012528184
  • u012528184
  • 2015年03月11日 11:16
  • 3156

2015年超强倒车入库技巧!完整图片解说

一、右倒库的技巧                      ...
  • thy822
  • thy822
  • 2016年04月15日 17:23
  • 930

(1)把一个存在工程加入git管理

git init: -- create empty git repository or re-initialize an existing one git add: -- add file cont...
  • xiaogou56a
  • xiaogou56a
  • 2015年08月04日 19:09
  • 331

Hbase入库因素小结(停止更新)

一、硬件因素 Ø 内存 Hbase对内存有特别的嗜好,因为内存越大,regionserver接受客户端传递来的数据时可以在内存中做缓存(memstore)以及排序,分配给region等操作...
  • u010708577
  • u010708577
  • 2014年02月25日 08:58
  • 854

管易云教你如何加强存货的出入库管理改善仓库管理工作情况

外购时,首先由生产技术管理部门提出用料需求计划,由主管领导审核,物资采购部根据库存编制采购计划,交财务部门列入资金需求计划,再由物资采购部负责实施采购。...
  • weixin_41389845
  • weixin_41389845
  • 2017年12月14日 15:40
  • 113

JSP中关于转发和重定向的问题

在JSP中,我们通常会遇到页面跳转的问题,这时候,我们有li
  • Sugar_tea
  • Sugar_tea
  • 2014年08月01日 22:33
  • 898

网站首页轮番图的后台管理

如下图,很多CMS的首页都会有实时更新的轮番图的需求:           最近在做一个CMS的过程中, 此函数最终会根据新闻内容截取出所有新闻中的图片地址集合,然后只需要将这些图片显示出来,选择一张...
  • huyuyang6688
  • huyuyang6688
  • 2015年07月17日 00:32
  • 1333

解决织梦中栏目的图片路径问题

在调用栏目时,我们有时需要对栏目附带相同或不同的图片,但是用织梦的图片路径标签却调用不出来。 解决办法:       1.参考网上的其他办法;       2.直接把图片放在生成的栏目文件夹下。不需要...
  • u012675743
  • u012675743
  • 2014年12月12日 00:09
  • 433
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于在网站中图片入库和管理!
举报原因:
原因补充:

(最多只允许输入30个字)