图片访问时的小问题,希望大家给些建议

时间:2021-04-03 19:53:29
刚接手了一个老项目。网站中的图片有用户上传的也有抓取的,数据库中保存的是相对路径还有文件名,访问的时候是在页面中把访问路径又拼接上去了,而且拼接的规则也不统一。现在我又做了一个图片接口,网站中的图片通过webservice中保存到了图片服务器中。我返回的是相对路径,访问的时候再拼上图片服务器的域名(这是领导要求的,他不想保存带域名的访问路径,我原本是准备直接返回一个图片访问的url的)。

 现在问题就出来了,项目中的图片上传相对好改,原来的是一个图片上传控件,我把控件改了就行。但是涉及到图片访问的感觉就麻烦了,新图片旧图片的访问规则不一样,而且涉及的页面很多,逐个改的话很麻烦。大家有没有好的解决办法呢,有没有那种方法呢,加一个文件或类的东西截获这个网站中发出的所有请求,如果访问的是带.jpg,png这些文件,我对这些请求做个处理返回一个正确的图片访问url出来,这样的话原来的那些有<img />绑定的页面我就不用改了,省了不少事。大家说说吧,有其他的好办法也可以给个建议,还有如果我这个方法可行的话,大家能贴一个类似的类的代码出来,我不知道怎么把我这个想法用代码实现。

6 个解决方案

#1


直接修改数据库,一次性按你的规则修改完成。

#2


引用 1 楼 ly_sl 的回复:
直接修改数据库,一次性按你的规则修改完成。
修改数据肯定是不会被同意的,而且只是修改数据解决不了我说的问题啊,新的规则和老的不一样,我岂不是还得每个页面都去改。

#3


我一般图片和css,js什么的都放到另一个服务器上的,和主体源码分开放。我还是没有明白楼主的描述,能否贴上一些截图出来,或许这样分析起来方便点

#4


引用 2 楼 z07041330 的回复:
引用 1 楼 ly_sl 的回复:直接修改数据库,一次性按你的规则修改完成。修改数据肯定是不会被同意的,而且只是修改数据解决不了我说的问题啊,新的规则和老的不一样,我岂不是还得每个页面都去改。

新老规矩不一样才导致显示不正常的。你修改数据库内容全部把老的记录按新的规划修改一次。为什么不会同意。这样又怎么会修改每个页面?

#5


LZ可以搜索一下asp.net中利用ashx图片防盗链的方法,应该可以解决你所说的问题.

#6


如果发送请求中没有明确的区别,截获了又能怎样?你可以重构一个方法,在获取路径的时候,以某一个规则为准,按这个规则取得图片路径,然后判断一下这个路径是否真实存在/有效,如果不存在,那么,启用规则2来获取路径.

#1


直接修改数据库,一次性按你的规则修改完成。

#2


引用 1 楼 ly_sl 的回复:
直接修改数据库,一次性按你的规则修改完成。
修改数据肯定是不会被同意的,而且只是修改数据解决不了我说的问题啊,新的规则和老的不一样,我岂不是还得每个页面都去改。

#3


我一般图片和css,js什么的都放到另一个服务器上的,和主体源码分开放。我还是没有明白楼主的描述,能否贴上一些截图出来,或许这样分析起来方便点

#4


引用 2 楼 z07041330 的回复:
引用 1 楼 ly_sl 的回复:直接修改数据库,一次性按你的规则修改完成。修改数据肯定是不会被同意的,而且只是修改数据解决不了我说的问题啊,新的规则和老的不一样,我岂不是还得每个页面都去改。

新老规矩不一样才导致显示不正常的。你修改数据库内容全部把老的记录按新的规划修改一次。为什么不会同意。这样又怎么会修改每个页面?

#5


LZ可以搜索一下asp.net中利用ashx图片防盗链的方法,应该可以解决你所说的问题.

#6


如果发送请求中没有明确的区别,截获了又能怎样?你可以重构一个方法,在获取路径的时候,以某一个规则为准,按这个规则取得图片路径,然后判断一下这个路径是否真实存在/有效,如果不存在,那么,启用规则2来获取路径.