我的Webapp正在使用https连接/ ssl证书运行。我需要给用户显示图片。我通过API请求获取到图片的链接,然后将它们链接起来。遗憾的是,图片地址是http,所以浏览器显示站点上有不安全的部分,这不能是.
我可以下载图片,然后链接到适当的图片,但我认为这可能有点费时,不是最好的处理方法。
有人知道更好的解决办法吗?我使用php、jquery和javascript。
发布于 2014-10-31 19:58:57
您必须在服务器上编写一个代理,并通过它显示所有图像。基本上,您的URL应该是:
$url = 'http://ecx.images-amazon.com/images/I/51MU5VilKpL._SL75_.jpg';
$url = urlencode($url);
echo '<img src="/proxy.php?from=' . $url . '">';proxy.php:
$cache = '/path/to/cache';
$url = $_GET['from'];
$hash = md5($url);
$file = $cache . DIRECTORY_SEPARATOR . $hash;
if (!file_exists($file)) {
$data = file_get_contents($url);
file_put_contents($file, $data);
}
header('Content-Type: image/jpeg');
readfile($file);发布于 2014-10-31 19:59:06
好的,我有一个流的例子给你。当然,你需要使它适应你的需要。
假设您在服务器上创建了一个名为mws.php的php文件,其内容如下:
if (isset($_GET['image']))
{
header('Content-type: image/jpeg');
header('Content-transfer-encoding: binary');
echo file_get_contents($_GET['image']);
}例如,在网络上查找任何图片:
http://freebigpictures.com/wp-content/uploads/2009/09/mountain-stream.jpg现在,您可以显示该映像,就像它位于您自己的安全服务器上一样,使用这个url:
https://<your server>/mws.php?image=http://freebigpictures.com/wp-content/uploads/2009/09/mountain-stream.jpg当然,如果您不止一次需要将图像存储在本地,并且必须包含正确的代码才能从Amazon获得图像,当然这样做更好,但这是基本的想法。
请别忘了保护你的剧本不被滥用。
https://stackoverflow.com/questions/26682163
复制相似问题