- ベストアンサー
phpにてファイルをアップロード。
皆様はじめまして。 phpでファイル[jpg画像]をアップロードできるようなブラウザーを作りたいのですが、検索でいろいろ探してはみたのですが、php初心者なのでいまいちよく分かっていません。 いくつかのページを参考にし、とりあえず参照→送信[アップ]できるようなブラウザーまではできたのですが、その先がうまくいきません。 サーバー上のにあるフォルダに画像をアップロードしたいのですが、上にも書いたようにphp初心者なので分からない部分が多くあります。 一連の流れが初心者でも分かるページなどありましたら教えていただけないでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
マニュアルは見てられるようですね。惜しいところです。 >$uploaddir = '/var/www/uploads/'; >$uploadfile = $uploaddir . basename($_FILES['userfile']['name']); > >echo '<pre>'; >if (move_uploaded_file($_FILES['userfile']['tmp_name'], >$uploadfile)) { > echo "File is valid, and was successfully uploaded.\n"; >} else { > echo "Possible file upload attack!\n"; >} サンプルは上記のようになっていて、パスを含んだファイル名です。 なお、サンプルではファイル名はbasename($_FILES['userfile']['name']) となっていますが、任意の名称で構いません。 それから、エラー発生の場合には、エラー内容も確認するほうが良いので print_r($_FILES); を入れておいてはどうでしょう。 後、エラーが発生する要因imgフォルダのpermissionとか そもそもサーバの設定上ファイルアップロードができないように なっている等が考えられます。
その他の回答 (4)
- fire--
- ベストアンサー率49% (146/293)
失礼、print_r($_FILES)は入ってましたね。 そこには何もエラー情報はなかったのでしょうか。
- briant-jr
- ベストアンサー率50% (5/10)
if (move_uploaded_file($_FILES['userfile']['tmp_name'], "/img/".$_FILE['userfile']['name'])) { じゃないのかなぁ。 移動先はファイル名と書いてあるので。
お礼
回答ありがとうございます。 変更してはみましたが(変更するだけでいいんですか?)…失敗しました。 本やサイトをみてやってはいるのですが、なかなかうまくいきませんね。
- Dorohedorer
- ベストアンサー率45% (252/548)
もともと用意されているPHPアップローダーを設置されてはどうでしょうか? もちろん自分で勉強して自分でつくれるほうがいいんですが・・・。 ちなみに当たり前のことを聞きますが、サーバーはPHPを使用できる環境ですよね? 余談で揚げ足とりになりますが、ブラウザとはWebを閲覧するアプリケーションなので、「ファイルをアップできるブラウザをつくりたい」等の記述は間違いです。
- 参考URL:
- http://php.s3.to/net/#up
お礼
回答ありがとうございます。 PHPは使用できる環境でした。 用意されているものを使用してもいいのですが、おそらく僕が作ろうとしているのは、そんなに難しいものではないと思うので、できる限りやってみたいと思います。 あと質問内容とは別件でしたが、間違い指摘していただきありがとうございました。
- fire--
- ベストアンサー率49% (146/293)
>その先がうまくいきません。 という事ですが、何ができないか、なんらかのエラーが発生したとか いう情報があると具体的なコメントが付きやすいと思います。 とりあえず、以下が参考になるでしょうか。 http://php.benscom.com/manual/ja/features.file-upload.php
お礼
回答ありがとうございますm(__)m そうですね…具体的に書いたほうが回答もしやすいですよね; ファイルをアップロードするには (1)html[アップ用のフォーム] (2)php (3)指定のフォルダ 以上があれば指定のフォルダに画像をアップできるということなのでしょうか? 初歩的な質問だと思いますが、申し訳ございません。 いくつか試してはみたのですが↓ [html] <html> <head> <title>ファイルのアップロード</title> </head> <body> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="hidden" name="max_file_size" value="1000000" > <input type="file" name="userfile"><br><br> <input type="submit" value="アップロード"> </body> </html> [php] <?php if (move_uploaded_file($_FILES['userfile']['tmp_name'], "/img/")) { print "ファイルアップロード成功"; print_r($_FILES); } else { print "ファイルアップロード失敗"."<br>"; print_r($_FILES); } ?> [フォルダ] img でやったのですが…失敗になりました。 何か間違ってるところがあるんだと思います。 ご指摘いただければと思います。
お礼
なるほど。参考になります。 permissionyやサーバーのほうは問題ないとのことでした。