※ ChatGPTを利用し、要約された質問です(原文:アップロードした画像を表示するには)
アップロードした画像の表示方法とエラー対策について
このQ&Aのポイント
アップロードした画像を表示する方法として、非同期でアップロードを行いながら画像の表示も行う処理が考えられます。
画像の表示方法によっては失敗する場合があり、src属性の設定方法やエラーメッセージの内容を確認する必要があります。
エラーメッセージによると、画像のsrc属性を設定する際にnullの値に対して参照エラーが発生しているようです。対策としては、src属性の設定前に要素の存在確認を行うことが考えられます。
アップロードした画像を表示したいと考えてます。アップロードは非同期
なので、アップロードを実行するchild.phpで画像表示の処理もして、アッ
プロードの命令を出すparent.phpに画像の表示を行います。
---- child.php(一部) ----
move_uploaded_file($_FILES["upload_file"]["tmp_name"], $image_name);
echo '<img src="' . $image_name . '" width="100" height="100">';
これで成功します。ただ画像を常に同じ場所に表示したくechoの部分を以下
のように書き換えると失敗します。
echo '<script>';
echo 'document.getElementById("pict").src="' . $image_name . '.jpg";';
echo '</script>';
---- parent.php(一部) ----
<img src="" id="pict">
クロームのDevToolsで調べるとElementsでは以下のようにsrcに何もなく失敗してます。
<img src id="pict">
ところがSourcesでは「Cannot set property 'src' of null」とエラーが出ているのに
以下のようにsrcには画像名は入ってます。
<script>document.getElementById("pict").src="./image1/bfbiD.jpg";</script>
なお同名の画像はきちんとアップロードしてます。対策があれば教えてもら
えないでしょうか。
お礼
そのとおりでした。imgタグ生成後にgetElementByIdを使ったところあっさり表示されました。 ありがとうございます。