目前正在写一个下载网页图片的小软件,经测试基本正常。但遇到两个特例,始终下载不了。他们均能右键属性查看到图片地址,再分别查看他们的网页源码,也均能找到图片的正确链接地址。
我使用的XMLHTTP组件下载图片,无论是同步还是异步均无法下载,其中一个复制了图片链接在一个新浏览器窗口中打开能正常显示一张单独的图片,另一个网站复制了图片链接在浏览器新窗口中打开后,图片链接被自动转换成了这个网站的GIF LOGO图片。但是我把图片地址复制到迅雷里却能正常下载。其中一个网站是PHPWIND v7.5 SP3,另一个是Powered by Discuz! 7.2。
    
  而后我采用API函数URLDOWNLOADTOFILE下载,其中一个能下载了,但是另一个图片被自动转换成网站LOGO的,下载下来的全是同张张图(也即此网站的LOGO图)
    
  也不知道是网站采用了什么技术还是我忽略了什么,太奇怪了,想了几天不得其法,希望在万能的CSDN哪位大神降临,帮我解决问题,谢谢!

解决方案 »

  1.   

    通常就两个途径,1个是HTTP头的来源地址信息,2个是Cookie或基于Cookie的Session信息。
      

  2.   

    第二个也许不太可能,我复制图片链接在同一个浏览器窗口中打开,一样得不到真实图片,显示的是网站的LOGO图片
      

  3.   

    对了,顺便问一句,您知道用XMLHTTP向网站建立连接,如果合伪造来路吗?
      

  4.   

    http://blog.csdn.net/supermanking/article/details/3082860
      

  5.   

    还有就是cookie的问题并不像你想的那么简单,可以有多种方法可以实现你说的在同一个ie窗口粘贴url也让你的图片显示无效,这和url引用地址原理一样,只要在应有的步骤环节上引用一个页面或图片或加一段特殊的识别参数或script脚本就可以设定这种步骤环节要素,当然也可以写到session里,用户就更无法跳跃这种过程,必须模拟整个过程才可以。当然,一般的网站不会这么弄,不过,我的网站就结合了refere头和session来做识别的,而且嵌入得很深,还和前几个步骤中的自动生成的随机码结合script以及有效时间等参数来做这种识别。所以关于别人是不是单纯的使用refere头来做识别我持保留态度。
      

  6.   

    监视分析下传送出去的内容最合适.看看IE的发送和XMLHTTP的发送.
    如果知道需要发送的内容就好办了