データベースから保存した画像を表示すると、Webページには空の四角形だけが表示されます。 (スクリーンショットを参照)。ダウンロードしても、画像は表示されずに開きます。 (私は、ダウンロードした画像部分を動作していないためSOで別のポストを公開しているphpがダウンロードして画像を表示しても動作しません
私のコード;
$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>";
}
UPDATE !!! - http://s000.tinyupload.com/index.php?file_id=88155436688298142745
SQL で自分のコードをダウンロードしてください。
エラーが報告されていますか?ヘッダーを変更する前にコンテンツをエコーしています。その結果、エラーになる – Terminus
ここをクリックhttp://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php – Terminus
おそらくヘッダーコールの上にエコーが問題を引き起こしている、出力が開始されたら、ヘッダーを設定することはできません。おそらく、イメージファイルにそのHTMLを置いているかもしれません。イメージファイルを破壊してしまいます。イメージのダウンロードは分離して、ページ上の非表示のiframeで行う必要があります。 – ArtisticPhoenix