php下载和显示图像都不起作用

时间:2016-04-24 04:54:14

标签: php

当我从数据库显示保存的图像时,网页只显示空方块。 (见截图)。即使下载后,图像也不会显示和打开。 (我已经在SO中发布了另一篇文章,因为我没有使用下载的图像部分。

enter image description here

我的代码;

            $query = "SELECT Id,Name,Type,SizeMB FROM Upload"; // Good practice. Do not process much data here. leave Content field
        $result = mysqli_query ( $con, $query) or die ("Couldn't execute SELECT query: ". mysqli_error($con));
        $nrows = mysqli_num_rows($result);
        echo '<table>
                    <tr>
                        <td>Id</td>
                        <td>Name</td>
                        <td>Type</td>
                        <td>Size (MB)</td>
                    </tr>';
        $selfpg = $_SERVER['PHP_SELF'];
        while( $row = mysqli_fetch_assoc($result) ){
            extract($row);
            echo "<tr>
                        <td>$Id</td>
                        <td>$Name</td>
                        <td>$Type</td>
                        <td>$SizeMB</td>
                        <td> <a href='$selfpg?id=$Id'> Download </a> </td>
                  </tr>";       
        }
        echo '</table>';

        //----------------------------------------------------------------------
        if ( isset($_GET['id']) ){

            $result_id = "SELECT Content FROM Upload WHERE Id=". $_GET['id'];

            $row = mysqli_fetch_assoc($result_id);
            extract($row);
            $size_bytes = $SizeMB * 1024 * 1024;
            /* When displaying the image on the webpage "Content-Type" is enough */
            header("Content-type: ". $Type);


            //header("Content-Length: ". $size_bytes);
            //header("Content-Disposition: attachment; filename= ". $Name);

            echo $Content;
        }
        else{
            echo "<br>No id received to download a file</br>";
        }

更新!!! - 请用SQL下载我的代码 http://s000.tinyupload.com/index.php?file_id=88155436688298142745

1 个答案:

答案 0 :(得分:2)

正如我在评论中所述,一旦开始输出,就无法更改标题。

在显示图像的情况下,您需要将图像数据放在图像标记的src=""属性中。

在下载它的情况下,你可以将它(带有正确的标题)输出到页面上隐藏的iframe中,iframe的src是下载它的php脚本的位置。

您还可以通过使用javascript将iframe附加到页面来触发下载。或者使用目标设置为iframe ID的表单,并使用操作下载脚本的位置。

干杯。