2013-04-20 37 views
0
   <?php 
       ob_start(); 
       session_start(); 
       require_once('name.php'); 
        if(!isset($_GET['e'])) 
        { 
        header('HTTP/1.1 204 No Content'); 
        exit(); 
        } 
        if(empty($_SESSION['id'])) 
        { 
        header('Location: login.php'); 
         exit(); 
        } 
        $id=$_GET['e']; 

        //database login information removed 

        $statement2=$db->prepare('select * from event2 where id=:id and userid=:uid'); 
        $statement2->execute(array('id' => $id, 
           'uid' => $_SESSION['id'])); 
        if($statement2->rowCount()==0) 
        { 
       header('HTTP/1.1 204 No Content'); 
       exit(); 
        } 
        $row=$statement2->fetch(); 
        $image=$row['image']; 
        $realimage=imagecreatefromstring($image); 


       header('Content-type: image/jpeg'); 
       $realimage; 
       ob_end_flush(); 
       ?> 

我收到“图片”图片链接“无法显示,因为它包含错误”。我已经尝试将内容标题位置更改为各个地方,并且无法使其正常工作。我已经从数据库直接下载了图像,并且它能够正确复制。当用铬合金打开页面时,我会看到一张很小的绿色图片。无法显示图片“[blah]”,因为它包含错误

+0

尝试删除最后一个'?>'?也许你的文件最后包含空格。 – 2013-04-20 21:26:00

+0

@EduardLuca感谢您的输入,但没有骰子:( – user2302779 2013-04-20 21:46:22

回答

1

输出图像怎么样?

imagejpeg($realimage); 

你缺少$realimage;之前imagejpeg。 (imagejpeg或其他适当的图像*函数输出。)


顺便说一句,你为什么不直接输出$image(通过echo)而不是首先解析图像数据的图像?

+2

鉴于它上面的'header'给出了'image/jpeg',可能'imagejpeg'会是一个更好的建议,虽然:) – Ryan 2013-04-20 18:30:46

+0

@minitech良好的捕获,修复。 – bwoebi 2013-04-20 18:31:50

+0

我试过imagejpeg($ realimage)和echo($ image),但都没有成功。我不直接输出的原因是因为它被保存为数据库中的文本(项目需求),所以函数imagecreatefromstring需要这样做,对吧? – user2302779 2013-04-20 21:05:30

1

您在<?php开始标记之前有空格。删除它们。

+2

确定在将代码放入此处后不会生成空格吗? – bwoebi 2013-04-20 18:28:11

+0

@bwoebi:我不知道,问OP。 ;) – 2013-04-20 18:33:52

+0

他们是,这是我第一次把代码放在堆栈溢出上,我试图让我的代码符合网站的问题创建向导。最终,我在记事本++中敲击了一大堆标签,并在一天内调用它。 – user2302779 2013-04-20 21:07:25

相关问题