【发布时间】:2011-10-07 11:22:16
【问题描述】:
我有一个从远程服务器获取图像的 PHP 脚本,以便我可以使用 HTML5 画布 API 对其进行操作。
<?php
if ((isset($_GET['url']))) {
$url = $_GET['url'];
$file_format = pathinfo($url, PATHINFO_EXTENSION);
try
{
header("Content-Type: image/$file_format");
header("Content-disposition: filename=image.$file_format");
$img = file_get_contents($url);
echo $img;
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
else die('Unknown request');
?>
一个典型的请求如下所示:
fetch_image.php?url=http://example.com/images/image.png
在我的本地服务器上一切正常,但生产服务器给了我这个错误:
NetworkError: 500 内部服务器错误。
错误日志记录了这条消息:
PHP 警告:无法修改标头信息 - 标头已发送。
我已经尝试了一些建议,但没有奏效:
allow_url_fopen = 1
【问题讨论】:
-
请粘贴完整的脚本(包括
<?php标签)。 -
听起来像是走错路了
-
错误指向哪几行?另请发布确切的错误消息。
-
如果您只是在远程服务器上呈现图像而无需额外处理,为什么不直接重定向到该图像?
-
@Meouw - HTML5 canvas api 不允许您操作来自另一个域的图像的像素。
标签: php file-get-contents production-environment