Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP输出图像问题_Php_Image_Header_Mime - Fatal编程技术网

PHP输出图像问题

PHP输出图像问题,php,image,header,mime,Php,Image,Header,Mime,因此,上面的代码在浏览器中不起作用,但是当我使用图像创建图像时 if (file_exists($path)) { $fileContent = id3_getImage($path); $fileMime = id3_getMimeOfImage($path); // is set to image/jpeg if ($fileMime != "") { header('Content-Type: '.$fileMime); pri

因此,上面的代码在浏览器中不起作用,但是当我使用图像创建图像时

if (file_exists($path)) {

    $fileContent = id3_getImage($path); 
    $fileMime = id3_getMimeOfImage($path); // is set to image/jpeg

    if ($fileMime != "") {
        header('Content-Type: '.$fileMime);
        print($fileContent);
        die;
    }
}
图像已创建,我可以在计算机上查看它。所以我不知道我做错了什么:(

*这可能是apache配置中的一个设置吗?老实说,我对这个没有任何线索

$img = imagecreatefromstring($fileContent);
imagejpeg($img, 'test.jpg');die;
您需要在之前发送标题。但是,如果要创建图像并显示,则需要为浏览器创建并阅读此标题

header('Content-Type: image/jpeg');

// Output the image
imagejpeg($img);
你可以在这里看到这个人:

我使用Google Group中的smartReadFile.php来显示任何类型的文件

它真的很聪明


当我从DB读取数据时,这一个对我有效

<?php 

require "smartReadFile.php";

$dir = 'images/';
$filename = 'someimage' . '.jpg';
$location = $dir.$filename;

smartReadFile($location, $filename);

?>

我需要动态创建图像,因此创建图像然后将其重定向到该路径实际上不是一个选项。无论如何,它应该是这样工作的,只要使用
imagejpeg($img,NULL)请解释id3_getImage()和id3_getMimeOfImage()-这是无效的运算符。这是一个自定义函数,使用getid3()类,我确信$var的内容是正确的,因为使用imagejpeg生成有效图像。因为我正在从音乐文件中检索封面以在网站上显示它。我不确定你的意思,您不需要使用readfile($filename),因为该文件的内容与$var中的内容相同,并且它们都将其打印到浏览器。您需要使用
imagejpeg($img,'test.jpg')并使用
readfile('test.jpg')我不确定这一点,因为我认为它会有相同的输出,但我还是测试了它,没有结果:(如果按文件名文件使用,则不在浏览器上发送结果。这只是为了保存文件。但是如果要保存文件并在浏览器上打印,则需要使用
readfile()
。如果您只想在浏览器上打印图像,可以与
imagejpeg()一起使用
没有
$filename
var。我不想保存图像,使用imagejpeg不起作用。这就是为什么我不知道错误的原因,因为它实际上应该起作用。使用它,但仍然不起作用,我想我需要更改apache配置中的某些内容。因为URL没有扩展名.jpg,实际上它没有有分机吗?只有一个/
<?php 

require "smartReadFile.php";

$dir = 'images/';
$filename = 'someimage' . '.jpg';
$location = $dir.$filename;

smartReadFile($location, $filename);

?>
$image = imagecreatefromstring([path/DBfiels]);  
header('content-type: image/jpeg');  
imagejpeg($image); 
imagedestroy($image);