画像投稿の遷移と表示について

このQ&Aのポイント
  • 画像投稿画面では、フォームにテキストと画像を入力し、確認画面で投稿内容を表示します。
  • 画像の表示方法については、一時保存フォルダに保存して表示する方法や、ローカルの画像を表示する方法があります。
  • また、画像のURLをデータベースに保存する際にも注意が必要です。
回答を見る
  • ベストアンサー

画像の投稿→表示についてです

こんばんは。今PHP勉強中の者です。 今画像投稿画面を作成しています。 画像投稿の遷移は 1、フォームに様々なテキストなどで文言等も含めて ローカルの画像を入力、参照        ↓ 2、確認画面で入力項目、投稿画像の表示、確認        ↓ 3、2の項目でいいなら投稿(データベースへデータを格納)し、 投稿ありがとうございました。等の文言表示。 といった行程です。 1~2の遷移はいいのですが、2移行が上手くできていません。 画像を何処から読み出しして参照として表示させたらいいのか よくわかりません。 $_FILESで配列を作成できていても、 その配列にある[tmp_name]という箇所のパスっぽい所を見ても 一時フォルダに画像が入ってる感じがしません。 (一時保存場所はデフォルトのままなでno_valueです。) これの確認画面での表示は一時保存フォルダ以外に 何処か同じサーバ内にフォルダ作って移動させて、 表示させて後に消すといったことをしたらいいのでしょうか? それともそのままアップする側のローカルの画像を 表示させるようにしたらいいのでしょうか? また、画像はFTP接続して別のサーバに画像をアップする感じです。 画像の読み出し自体はhttp://hogehoge.com/hoge1/hoge2.jpg のような感じで読み出しますので、データベースにその パスも入れたいのですが、3の行程でインサート文のSQLを 発行する前に、他の文言等と一緒に このパスも拾わなければならない感じです。 FTP接続などは終了しているのですが、これも何処で 別サーバへアップしてURLを拾ってあと、 データベースへURLのインサート処理していいのかよくわかりません。 なんか乱雑な文章になりましたが、解決したいので、 ご教示いただけないでしょうか? よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • yuuki0229
  • ベストアンサー率70% (33/47)
回答No.1

確認画面が無いなら問題なく動かせるものを作れるということでしょうか? >これの確認画面での表示は一時保存フォルダ以外に >何処か同じサーバ内にフォルダ作って移動させて、 >表示させて後に消すといったことをしたらいいのでしょうか? 確認画面を挟む場合そうなります。 そのためのmove_uploaded_file()という関数がありますので、これを使ってhttpで外部から参照できる場所に移動します。 ちなみに一時ファイルはアップロードされた時のスクリプト実行終了時に削除されますので後から見に行っても無いはずです。 あと、このタイミングで操作が中断されるとゴミファイルが残りますので古いファイルが見つかったら削除するような処理も必要になります。 >FTP接続などは終了しているのですが、これも何処で >別サーバへアップしてURLを拾ってあと、 >データベースへURLのインサート処理していいのかよくわかりません。 (時間の掛かる処理でなければ)確認画面の投稿ボタンを押したときで良いと思います。 アップロードしたときの最低限のパス部分(hoge1/hoge2.jpgもしくはhoge2.jpg)だけをDBに保存して 固定になる部分(http://hogehoge.com/)は設定ファイル等に置いておいた方が無難かもしれません。

sscommon
質問者

お礼

回答ありがとうございます。 今の所、その教えていただいた move_uploaded_file()という関数を使って、 サイトと同一のファイルサーバ内のある箇所に フォルダを作成してそこへ画像ファイルを移動保存して、 それを確認画面に表示させてます。 DBにはFTPサーバへ移行させる前に固定値のURLを組み込んで、 残りを変数にしてその値をDBへ格納している方式を取っています。 一応、DBへのデータの格納は上手く行っています。 ありがとうございます。 しかし、肝心の画像がその後に確認画面で 投稿というボタンを押したらFTP関数のftp_put関数を使って、 保存しているファイルを 別のFTPサーバへファイルの移行という形で行っているんですが、 上手く行きません。 保管したファイルをroot以外の権限 (このroot以外の権限を使用しています)で移動しようにも $_FILESで一時保存の所に画像を持っていった時点でなってるのか わかりませんが、ムーブ関数実行後、保存したファイルの 権限、グループがapacheになっています。 プリントなどをしてみてプログラム上では FTP関数の動作は上手く行ってるような感じがしますが、 実際に画像サーバにアップロード出来てない状態です。 普通にサーバに上げたファイルを今使用しているユーザーの権限で デスクトップに取りだそうにも取りだせない状態だったので これが原因じゃないかと思っています。 権限、グループを変えるPHP関数を使ってみたものの、 これも上手く動作していないようで対象ファイルの権限が 今使用している権限へと変わりません。 このムーブ関数を使用したファイル以外の フォルダ、ファイル全て権限は同じなのですが…。 アパッチの設定を変えるしかない…んでしょうか…。 何か良い方法があればご教授いただけないでしょうか? お願い致します…。

その他の回答 (1)

  • yuuki0229
  • ベストアンサー率70% (33/47)
回答No.2

>権限、グループがapacheになっています。 PHPはapache上で動いているためそのような権限が正常です。 >FTP関数の動作は上手く行ってるような感じがしますが、 >実際に画像サーバにアップロード出来てない状態です。 動きの怪しい部分は単体で実験すると良いです。 #FTPの確認をするために毎回ファイルを選択するのは面倒ですので DBとか関係なく、ftp関数を使用してダミーファイルをアップロードをするだけのスクリプトを用意して挙動を探るイメージです。 >普通にサーバに上げたファイルを今使用しているユーザーの権限で >デスクトップに取りだそうにも取りだせない状態だったので 所有者がapacheであればそのまま処理することは問題ないはずですので原因かどうかは怪しいです。 管理上不便であればchmodで666等に変更しても良いと思います。

sscommon
質問者

お礼

ものすごく回答が遅くなり大変申し訳ありません。 丁寧な回答ありがとうございます。 どうにか解決しました。 ユーザーの問題というわけではなかったみたいでした。

関連するQ&A

  • phpの画像表示

    sqliteで質問があります。 sqliteのdbファイルにimageというカラムを作りパスを入力してサーバーにアップしました。例:hoge/hoge.jpg そこで質問です。 html(php)側には何と書けば画像は表示されますか? html側は $row という変数に格納しwhileでカラム分だけループさせています。 画像は &row[6] に当たります。 やってみたこと→'<img src="$row[6]">' こうしましたが、表示されませんでした。

    • ベストアンサー
    • PHP
  • またまた小さい画像・・・。

    今、HPを作っている真っ最中です。 そのHPに小さい画像(jpg)をたくさん並べているのですが、 それらがどういうわけかサーバに載せると表示されません。 画像があるフォルダへのパスも間違えてません。 自分のPC上ではきちんと表示されるのに サーバにアップすると、まったく表示されません。 どうしてなんでしょう・・・? 同じページに大きい画像(jpg)を載せてるんですが、 それはきちんと表示されるのです。 ネットオプションの設定でも、「画像を表示する」 にチェックを入れてます。 わかる方がいらっしゃいましたら、返答をよろしくお願いします。 ちなみに、ブラウザはI.E5.5を使っています。

  • 画像のランダム表示について

    下記URLを参考に、画像のランダム表示をしたく思っています。 http://iwantaneff.in/repo/plugins/image-galleries/photofy/ 上記URLの場合、表示された番号の画像をクリックすると、shdowboxのように詳細ページが 表示される仕組になっています。 画像をクリックしたら、別ページに遷移(例のようにポップアップな感じではなく、単純な遷移)させる には、どのようにコードを修正すればよいでしょうか。

  • 画像投稿できない。

    あるサイトに上限上限50KBの画像を投稿しても、(jpg かgif かpng のファイルしかアップできません。或いはハイフン以外の記号があります。)と言う表示が出て画像が送れません。

  • 画像ファイルを画像表示させたい

    画像ファイルのアイコンを画像で表示させたいのですが、それができません。 手動で毎回「表示」-「このフォルダのカスタマイズ」-「画像」とやれば一時的には画像になりますが、そのフォルダ自体を閉じてしまうとまたアイコン表示になってしまいます。 いちいち手動でやらなくても毎回画像表示させてなんの画像か見てすぐわかるようにしたいです。 どうすればそうなるか教えてもらえますか?

  • 画像の投稿が出来ない

    友人はXPを使っているんですが、写真がアップロード出来る掲示板に画像の投稿が出来ないと言っております。 エラー表示で「ファイル名に「<, >, ", ;, |, /, 」は使えません」と言うのが出るそうなんですが、そういう記号は使っていないのです。 写真はマイドキュメントの新しく作ったフォルダの中に入れています。 投稿する時、「参照」をクリックしてそのフォルダの中に入れているサイズを小さくした写真を指定しているんですが出来ないそうです。 お忙しいところ申し訳ありませんがよろしくお願いいたします。

  • 無修正画像の投稿について(再確認させて下さい)

    無修正画像の投稿について、他のQ&Aも色々と見ましたが、 整理と再確認をしたく、質問させてもらいます。 【質問】 日本で所持している無修正画像を、アメリカにサーバーを置いている掲示板に、 日本から投稿(UP=送信)する行為は、日本では違法なのですか? 掲示板は、不特定多数が閲覧できる掲示板です。 アメリカにサーバーがあり、自身がアメリカから無修正画像をUPすることは、 問題ないことはわかっているのですが(あってますよね?)、自身が日本にいて、 アメリカの掲示板(サーバー)に投稿=UP=送信する行為はどのように解釈されているのですか? 実際、そのような掲示板が存在し、無修正画像が投稿されているところを見ると、 問題はないのかと思いますが、日本の法律では厳密に言えば、違法ではあるが、 現実問題、アメリカ(海外)にサーバーがあり、立証できない(手間がかかる?)ため、 野放ししているということでしょうか? 日本から無修正画像を投稿する行為について、教えて下さい。 法律的にはどうなっていますか? どなたかお願いします。

  • 掲示板で、投稿回数により表示される画像を変える事は…

    はじめまして。初めての投稿で、至らない点が多々有ると思いますが どうぞ宜しくお願い致します。 掲示板のCGIで、それぞれの投稿回数によって、 表示される画像を変える事はできるでしょうか? たとえば、コメント投稿覧の横に画像を表示させるとして、 0~10回投稿すると画像(1)が表示されていて、 11~20回投稿すると画像(2)に画像が変わり、 21~30回投稿すると画像(3)に…といった感じで。 やりかた…もしくは、 もしそういったCGIを配布して下さっている サイトをご存知でしたらご回答下さると嬉しいです。

    • 締切済み
    • CGI
  • 画像が表示されません

    PHPで画像を呼び出しして、サイトに表示するようにしているのですが、 画像の変更があった為、100件ぐらいUPしたところ、 UP画像のみが表示されなくなりました。×マークが出ている状況です。 更新であって、新規の画像をUPしたわけではありません。 見えていた画像が見えなくなってしまったのです。 という事は、画像名もUPした場所もあっているという事ですし、何度UPしても変わらないので、サーバの混雑状況ではないと思います。 どなたか、心あたりございませんか? どうぞよろしくお願い致します。

    • 締切済み
    • PHP
  • 画像のアップについて

    画像のファイルは、フォルダにアップロードされているが、 画像のファイル名が、データベース上に 登録されません。データーベースにいれるソースがわかりません。フィールドにgazoを作成してあります。他のデーターはインサートします。$insertSQL = sprintf("INSERT INTO uru)・・・GetSQLValueString($HTTP_POST_VARS['daimei'], "text"),・・ではいります。よろしくご指導をお願いいたします。

専門家に質問してみよう