如何从HTTP身份验证保护区获取图像


How to get image from HTTP-auth protected area?

我有一台网络摄像机(D-LINK DCS-2130)和一个网站。摄像头没有"访客"选项(或者我没有找到它在哪里?),所以我需要授权我的网站显示摄像头的图像。显示图像的正确方式是什么?

我有两个想法:

  1. 创建getImage.php,它将向相机发送登录+通行证(cURL)并获取图像。在我的站点代码中,我将使用src="getImage.php"
  2. 创建相同的getImage.php,它将发送login+pass(cURL),获取图像,将其本地存储到/myCameraSnapshots/Image.jpgwait() 1秒,然后获取新图像并在本地覆盖它

第一种方法将对相机进行多次请求(1个查看器-1个请求),第二种方法将加载服务器的CPU,但不会干扰相机的授权。

我希望你能说"你是个白痴!有一种简单的方法可以从受保护的文件夹中获取图像!只需…";)

假设您在getImage.php中进行了正确的授权,第二种方法(使用缓存)可能会更高效。

如果getImage.php使用Content-Type标头,则只需将/myCameraSnapshots放置在web服务器根目录之外(或仅限于本地访问),然后根据需要使用readfile在调用时转储内容。

根据相机上的图像更改的频率,您还需要一种方法来使缓存的图像无效(可能是通过删除它),这将提示getImage.php再次向相机请求它。

我已经找到了这个相机的访客密码(访客:访客),所以我的问题解决了,但无论如何,每个人都应该阅读答案,你可以在其中找到问题的答案!