https连接中加载的Http内容
Http content loaded in https connection
我的Webapp使用https连接/ssl证书运行。我需要向用户显示图片。我通过API请求获得图片的链接,然后将它们链接起来。遗憾的是,图片地址是http,所以浏览器显示网站上有不安全的部分,这一定不是…
我可以下载图片,然后链接到合适的图片,但我认为这可能有点耗时,不是处理这个问题的最佳方式。
有人知道更好的解决方案吗?我使用php、jquery和javascript。
您必须在服务器上编写一个代理并通过它显示所有图像。基本上,您的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);
好的,我有一个流媒体示例。当然,你需要根据自己的需要进行调整。
假设您在服务器上创建了一个名为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
现在,您可以显示该图像,就好像它位于您自己的安全服务器上一样,网址为:
https://<your server>/mws.php?image=http://freebigpictures.com/wp-content/uploads/2009/09/mountain-stream.jpg
当然,如果您多次需要图像,最好将其存储在本地,并且您必须包含正确的代码才能从Amazon MWS ListMatchingProducts获得图像,但这是基本思想。
请不要忘记保护您的脚本不被滥用。
相关文章:
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- 如何处理HTTP 204”;无内容”;在Restangular POST中
- 如何在ionic中使用$http获取特定的用户内容
- HTTP响应中出现意外内容
- 如何根据AngularJS中的http结果生成不同的html内容
- 防止在 HTTPS 父级中嵌入 HTTP 帧时出现混合内容错误
- 当我通过ajax加载https页面时,混合内容,但浏览器仍然认为它是http
- Deezer内容通过HTTP提供
- JQuery - 找不到 HTTP 404 - 服务器未找到与请求的 URI 匹配的任何内容
- 是否有HTTP标头可以防止页面以IFRAME以外的任何内容呈现
- HTTPS 页面解决方案下的 HTTP 内容
- 如何使用http.post方法替换或更新文本区域中的现有内容
- 如何通过http将angularjs表达式内容作为查询字符串发送
- 使用$http发送JSON会导致angular发送文本/纯内容类型
- https连接中加载的Http内容
- 如何在AngularJs中使用ngView加载视图内容时为http错误定义处理程序
- 获取HTTP内容
- 在$http加载的内容上呈现AngularJS指令
- 如何解析Express/ NodeJs中缺少内容类型的HTTP请求,通过假设一个默认的内容类型
- CKEditor访问http内容