私は、アップロードした画像をPHPでMySQLにアップロードできない理由を調べるため、コードを最小限に絞りました。誰かが私のエラーを指摘できれば、私は最も感謝しています。アップロードされた画像をPHPでMySQLに表示できません
実行時に、ブラウザにエラーが含まれているためイメージを表示できないことが報告されます。
ただし、画像アップロード&は、この同じ環境で実行されている他のデータベースで正常に表示されます。
アップロード後にデータベースにblobが保存されていることを確認しました。
私は何かが分かりません。
アップロードフォーム..
<body>
<form enctype="multipart/form-data" action="imagetestprocess.php" method="post">
<input type="file" name="image">
<input type="submit" value="Submit">
</form>
フォームハンドラ..
<?php
include("../mylibrary/login.php");
login();
$imagefile = file_get_contents($_FILES['image']['tmp_name']);
$imagefile = mysql_real_escape_string($imagefile);
$query="UPDATE pieces SET image_full='$imagefile' WHERE assetno='1'";
$result = mysql_query($query);
?>
画像表示部..
関数と呼ば<?php
include("../mylibrary/login.php");
login();
echo "<body>";
echo "before";
echo "<img src=\"showimage.php\" alt=\"showimage\">";
echo "after";
?>
...
<?php
include("../mylibrary/login.php");
login();
$query = "select * from pieces where assetno='1'";
$result=mysql_query($query);
$row=mysql_fetch_array($result, MYSQL_ASSOC);
$image=$row['image_full'];
header("Content-type: image/jpeg");
echo $image;
?>
こんにちは、あなたの返信のおかげで。 image_fullフィールドはすでに中括弧です。 あなたはどういう意味ですか?$ imagefile = chunk_split(base64_encode(file_get_contents($ _ FILES ['image'] ['tmp_name']))); 違いはありませんが、私は恐れています。 – Paul
midiumblobが良好です。エンコードはあなたのfile_get_contentをエンコードするので、ガベージの問題は発生しません。character.chunk_splitは文字列を小さな塊に分割して、大きな文字列のときにイメージの内容を読み取ることをお勧めします。 –