我一直收到一个PHP错误,“在第8行的/home/jbird11/public_html/grids/upload.php中调用未定义的函数getallheaders()”
上传脚本基本上会将拖入某个区域的图片上传,然后上传。当我拖动图像时,我收到此消息。
这是php文件的前40行左右:
<?php
// Maximum file size
$maxsize = 1024; //Kb
// Supporting image file types
$types = Array('image/png','images/gif','image/jpeg');
$headers = getallheaders();
// LOG
$log = '=== '. @date('Y-m-d H:i:s') . ' ========================================'."\n"
.'HEADER:'.print_r($headers,1)."\n"
.'GET:'.print_r($_GET,1)."\n"
.'POST:'.print_r($_POST,1)."\n"
.'REQUEST:'.print_r($_REQUEST,1)."\n"
.'FILES:'.print_r($_FILES,1)."\n";
$fp = fopen('log.txt','a');
fwrite($fp, $log);
fclose($fp);
header('content-type: plain/text');
// File size control
if($headers['X-File-Size'] > ($maxsize *1024)) {
die("Max file size: $maxsize Kb");
}
// File type control
if(in_array($headers['X-File-Type'],$types)){
// Create an unique file name
$filename = sha1(@date('U').'-'.$headers['X-File-Name']).'.'.$_GET['type'];
// Uploaded file source
$source = file_get_contents('php://input');
// Image resize
imageresize($source, $filename, $_GET['width'], $_GET['height'], $_GET['crop'], $_GET['quality']);
} else die("Unsupported file type: ".$headers['X-File-Type']);
// File path
$path = str_replace('upload.php','',$_SERVER['SCRIPT_NAME']);
// Image tag
echo '<img src="'.$path.$filename.'" alt="image" />';
知道导致此错误的原因是什么?许可许可能吗?权限设置为755.您可以在此处查看此工作演示:http://pixelcakecreative.com/grids/
知道怎么解决这个问题吗?提前致谢
答案 0 :(得分:2)
来自文档:
此函数是apache_request_headers()的别名。有关此函数如何工作的更多信息,请阅读apache_request_headers()文档。
如果您没有使用apache(使用php作为模块),则此功能不可用。
答案 1 :(得分:0)
这是apache related function。也许您没有安装所需的扩展程序?
答案 2 :(得分:0)
:只有当PHP作为Apache模块运行时才支持该功能。我们的共享和转销商服务器将PHP作为CGI运行,不幸的是,这无法更改。对由此带来的任何不便,我们深表歉意。
如果您的网站绝对需要该功能,则需要考虑升级到VPS,在这种情况下,可以根据需要安装PHP。
答案 3 :(得分:0)
您可以使用此代码确保您具有不依赖于服务器软件配置的此类功能:
if (!function_exists("getallheaders"))
{
function getallheaders()
{
$headers = "";
foreach ($_SERVER as $name => $value)
{
if (substr($name, 0, 5) == "HTTP_")
{
$headers[str_replace(" ", "-", ucwords(strtolower(str_replace("_", " ", substr($name, 5)))))] = $value;
}
}
return $headers;
}
}