• 締切済み

PHPでアップロードした画像が表示されません

現在、Redhat9+Apache+PHP+PostgreSQLでサイトを構築しています。 PHPはRPMでインストールしました。 php-4.2.2-17.2.i386.rpm PHPでアップロードのフォームを作成し、jpegやgifなどの画像ファイルをアップロードし、表示するパスをDB(PostgreSQL)で管理しています。 画像は/tmp/ に一度アップされ、指定のパスに正常にコピーされているようなのですが、実際、ブラウザで見ると×印がでて表示されません。 アップロードされた画像をダウンロードして、画像処理ソフトなどで開いてみたのですが、表示されません。 アップロードの際に画像ファイルが壊れてしまったように思えます。 どなたか、解決方法等をご存知の方がいらっしゃいましたらご教授願えないでしょうか? よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

どなたも回答されてないようですので。 まず確認ですが、指定のパスに本当にコピーされていますか?アップロードしたファイルと、ダウンロードしたファイルのファイルサイズの確認はしましたか? →もしファイルサイズが違っていれば正常にコピーされていないですね。 ファイルサイズが同じでしたら、 1. パス又はファイル名が違っていませんか? 2. WEBアクセス出来ないパーミッションになっていますか? 3. 指定のパスはWEB公開されていますか? 1.はパス名を正せば良いです。 2.はPHPでアップロードした場合、2.のパーミッションについてはそれ程心配する必要は無いと思われますが、確認下さい。 3.は例えばホームディレクトリが/home/httpd/html/なのに、ファイル保存先が/home/user/files/ だったりするとWEB公開されていないので当然ダウンロードも出来ません。 この辺の状況が分かりませんので、これ以上は何とも。 質問とは直接関係なく、蛇足ですが、 > php-4.2.2-17.2.i386.rpm はバージョンがちょっと古すぎると思います。古いからうまく動かないと言う事ではありません。 セキュリティ上の問題が多数報告されており、最新版は4.3.11になります。 rpmですとなかなか新しいバージョンは配布されていないのですが、下記URLあたりを参考にしてみてはどうでしょうか。 http://alectrope.ddo.jp/mt/archives/2004/12/20/php_4310_rpm

関連するQ&A

  • PostgreSQLのラージオブジェクトを使って画像を表示したい

    現在、PostgreSQL+PHPで画像管理DBを作成しています。 開発環境は、 Solaris8 Apache1.3.12 PostgreSQL7.1.3 PHP-4.1.0 で行っています。 今、PostgreSQLのラージオブジェクトを使用して画像(JPEG)のDBへの登録及び画面に表示するところを作っているのですが、PHPのスクリプトを作成してWeb上から動作確認を行ったところ、画面に以下の文字が表示されました。 =====表示される文字列===== ・・JFIF,,・厥hotoshop 3.08BIM,, ・'File written by Adobe 屯胖7GWgwt6Х牌范 : ========================= 多分、画像(JPEG)のバイナリがそのまま出力されていると思われます。 これは、PHPの問題なのでしょうかそれとも、DBへの登録が失敗したのでしょうか? 教えていただけないでしょうか?また、 PHP4.1.0+PostgreSQL7.1.3の環境で画像管理DBのなにかサンプルがあれば教えてください。

    • 締切済み
    • PHP
  • 画像がかすれになって表示されます

    ホームページビルダーでjpegまたはgifにてhtmlファイル内に貼り付けていますが、画像がかすれてしまいます。 jpegはRGBなのです。gifでも試しましたが同様になります。 PC上ではきれいに表示できるのです。 アップロードした時の画像ファイルの読み書き権限の設定でしょうかね。 どなたか経験ございませんか?

  • 画像がアップロードできない・・・

    safariを使用しています。ヤフオクに画像をアップロードしたいのですが、iphotoから書き出ししたファイルはJPGと書き出され、jpeg・jpgにファイル名を変更しても、何度もgif・jpegのみ使用してくださいと表示され、画像アップできません。 どうしたらいいのでしょうか?かなり困ってます。 使用環境はOS10.3.3です。safari1.2です。

    • ベストアンサー
    • Mac
  • JavaScriptだけで画像アップロードし、表示

    JavaScriptだけで画像アップロードし(実際に受け取り)、画面に表示させたいのですが、可能でしょうか? ※JavaScriptしか使えないレンタルサーバでの利用を想定しています 下記を試してみたのですが、うまくいきませんでした ▽【HTML5】File APIを使って、投稿された画像を即時表示する方法【小ネタ】 : アシアルブログ   http://blog.asial.co.jp/1079 ※画像は表示されるのですが、画像ファイルはアップロードされていない(もしくは受け取ることが出来ない) ■質問1 ・画像ファイルパスが、<img src="data:image/jpeg;base64,/9j/4AAQS になるのですが、これは、tmpみたいな場所にアップロードされている、ということなのでしょうか?(FTPで見ても、どこにアップロードされているか確認できませんでした) ■質問2 ・アップロードされたファイルを受け取るための処理は、サーバサイドでしか出来ないということでしょうか? つまり、JavaScript単独だと、画像をアップロードできても、受け取ることが出来ないので、意味がない?

    • ベストアンサー
    • AJAX
  • 画像のアップロードが出来ない

    →添付可能なファイルは.gif/.jpg/.jpeg/.png サイズは100KBまで。 ファイル名に半角スペースがあるとアップロードできません。 jpeg、サイズ100KB以下の画像を選択したのですが、アップロード出来ませんでした。なぜでしょうか。

  • 画像のアップロードができない

    PHPで携帯サイトを制作中なのですが、メールで画像をアップロードする ことができずに困っております。 具体的にはサーバーにファイル自体はアップロードされるのですが img配下を見ると「ev4rVY(エンコードされたファイル名)」がサーバーにアップされているものの、拡張子がついていないのです。 ▼画像アップロードプログラムPHPソース // ユーザー&認証コードチェック if ($user&&$auth_code==getAuthCode($user['id'], $user['auth_string'])) { // 認証OK // マルチパートの場合のみメールを解析して画像を取得 if (strtolower($structure->ctype_primary) == "multipart") { $images = getImage($structure->parts); } $image_save_path = null; // 画像リストの中から1つだけ画像を取得する foreach ($images as $image) { // コンテンツタイプのチェック if ($image['type'] == 'image/jpeg' || $image['type'] == 'image/gif' || $image['type'] == 'image/png') { // ファイルとして保存 // 一時ファイルパス $temp_path = tempnam('/tmp', 'img_'); if ($temp_path == false) { // error break; } $fp = fopen($temp_path, 'w'); if ($fp == false) { // error break; } fwrite($fp, $image['body']); fclose($fp); // 画像の形式と縦横サイズを取得 list($width, $height, $type) = getimagesize($temp_path); // 認識できる形式であれば、所定のメソッドで開く $imageSource = null; if ($type == IMAGETYPE_GIF) { $imageSource = imagecreatefromgif($temp_path); } else if ($type == IMAGETYPE_JPEG) { $imageSource = imagecreatefromjpeg($temp_path); } else if ($type == IMAGETYPE_PNG) { $imageSource = imagecreatefrompng($temp_path); } // 一時ファイルを消す unlink($temp_path); if ($imageSource) { // ファイル名決定 $path = tempnam($image_dir, ''); //unlink($path); $image_save_path = $path; // 画像をケータイディレクトリへファイル保存 imagejpeg($imageSource, $image_save_path); imagedestroy($imageSource); break; } } } ▲以上ここまで━━━━━━━━━━━━━━━━━━━━━━━━━ 開発環境:CentOS5 PHP Version 5.2.11 ※本を参考に制作しているのですが  本にはGD Graphics をダウンロードした方がよいと  記載がありました。関係ありますでしょうか。 どなたかお分かりになる方がいらっしゃいましたらどうか ご教授いただけませんでしょうか。 お願いいたします。

    • ベストアンサー
    • PHP
  • RPMの削除

    環境:RedHat9/apache2/php4 RPM形式でインストールされたapache2・PostgreSQL・ PHP4.2.2を削除する時は下記の方法で良いのでしょうか? rpm -e httpd rpm -e postgresql rpm -e php 上記コマンド実行時に表示される関連(is need by)する rpmファイルも削除する。

  • 画像アップロードについて

    いつもお世話になっております。 画像アップロード機能を作成し、問題なくアップロードを行うことができたのですが、 ある一定サイズ(約2MB)を超えるとアップロードが行われない現象が発生しました。 アップロードした画像は既定のサイズにリサイズして保存する仕様となっているのですが アップロード自体が行われないため、困っています。 以下【該当処理抜粋】------------------------------------------------------------- // ファイル名を設定する $fname = "hoge.jpg"; // 画像の幅・高さを設定する【規定値】 $w_size = "150"; $h_size = "100"; $tmp_name = $_FILES[$fname]['tmp_name']; // 画像ファイル名 $filename = "./hoge/".$fname; if (is_uploaded_file($tmp_name)){ $type = $_FILES[$fname]['type']; if ($type == "image/jpeg" || $type == "image/pjpeg") { // 画像ファイル存在チェック if(file_exists($filename)){ // ファイルが存在する場合は削除する unlink($filename); } // 画像ファイル名でアップロードをおこなう move_uploaded_file($tmp_name, $filename); // 画像ファイルのサイズを取得する list($sw, $sh) = getimagesize($filename); $src = imagecreatefromjpeg($filename); $dst = imagecreatetruecolor($w_size, $h_size); // 画像ファイルを既定サイズにリサイズする imagecopyresized($dst, $src, 0, 0, 0, 0, $w_size, $h_size, $sw, $sh); imagejpeg($dst, $filename); echo $fname[1]."ファイルのアップロードが完了しました。<br>"; }else{ echo $fname ."ファイルの画像形式が正しくありません。<br>"; } }else{ echo $fname ."ファイルはアップロードされませんでした。<br>"; } ---------------------------------------------------------------------------------------------------- 現象について調べたところ、PHPにはアップロードサイズが設定されている(デフォルト2MB)ため サイズの大きいファイルはアップロードできないようです。 サーバーはロリポップでレンタルしているためphp.iniの設定を変更ができません。 画像自体を事前にリサイズしてアップロードを行えば問題ないのですが、 今後、一般の方にも公開を予定してまして、リサイズ方法が分からない人(そのようなソフトがない人)にも 操作できるようにデジカメで撮った写真をそのままアップロードできる形式にしたいと考えています。 何かいい方法があればご教授願います。 【環境】 PG:php4.3.11 WEB:Apache

    • 締切済み
    • PHP
  • 3日で作るPHPの本で画像アップロードするには?

    3日で作るPHPの本で画像アップロードするには? フォーム内 画像 <input type="file" name="image" size="40"><br> 下記内容でファイル内に保存する $upload_file = date("ymdHis")."_".basename($_FILES["image"]["name"]); $upload_path = "<保存先のディレクトリ名>".$upload_file; $upload_url = "./images/".$upload_file; move_uploaded_file($_FILES["image"]["tmp_name"],$upload_path); 以上のように表記してありましたが、 表示の仕方が書いていなくどのように表記したよいのかサンプルなどで教えていただきたいです。 さらに上記のように保存先のディレクトリ名書を絶対相対パスで書いてみたのですが保存されませんでした。 どこを変更するとよいでしょうか

    • 締切済み
    • PHP
  • phpでの画像出力

    フォームでアップロードした画像(jpg)を、base64でエンコードしてテキストとしてDBに格納しています。 そのデータをDBから取り出して、PHPで出力したいのですが、上手く行きません。 下記のような手順で試しましたが、ダメでした。 ※php5とMySQLです。 $img = base64_decode("※DBから取り出したテキスト"); header("Content-type: image/jpeg"); echo $img; 尚、下記のような形では画像表示出来ましたが、出来ればphpからの出力をしたいと考えています。 <img src="data:image/jpeg;base64,※DBから取り出したテキスト" /> php初心者ですが、よろしくお願い致します。

    • ベストアンサー
    • PHP