• ベストアンサー

phpにてファイルをアップロード。

皆様はじめまして。 phpでファイル[jpg画像]をアップロードできるようなブラウザーを作りたいのですが、検索でいろいろ探してはみたのですが、php初心者なのでいまいちよく分かっていません。 いくつかのページを参考にし、とりあえず参照→送信[アップ]できるようなブラウザーまではできたのですが、その先がうまくいきません。 サーバー上のにあるフォルダに画像をアップロードしたいのですが、上にも書いたようにphp初心者なので分からない部分が多くあります。 一連の流れが初心者でも分かるページなどありましたら教えていただけないでしょうか? よろしくお願いします。

  • PHP
  • 回答数5
  • ありがとう数6

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

  • ベストアンサー
  • fire--
  • ベストアンサー率49% (146/293)
回答No.4

マニュアルは見てられるようですね。惜しいところです。 >$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とか そもそもサーバの設定上ファイルアップロードができないように なっている等が考えられます。

t-birdman
質問者

お礼

なるほど。参考になります。 permissionyやサーバーのほうは問題ないとのことでした。

その他の回答 (4)

  • fire--
  • ベストアンサー率49% (146/293)
回答No.5

失礼、print_r($_FILES)は入ってましたね。 そこには何もエラー情報はなかったのでしょうか。

  • briant-jr
  • ベストアンサー率50% (5/10)
回答No.3

if (move_uploaded_file($_FILES['userfile']['tmp_name'], "/img/".$_FILE['userfile']['name'])) { じゃないのかなぁ。 移動先はファイル名と書いてあるので。

参考URL:
http://jp2.php.net/manual/ja/function.move-uploaded-file.php
t-birdman
質問者

お礼

回答ありがとうございます。 変更してはみましたが(変更するだけでいいんですか?)…失敗しました。 本やサイトをみてやってはいるのですが、なかなかうまくいきませんね。

回答No.2

もともと用意されているPHPアップローダーを設置されてはどうでしょうか? もちろん自分で勉強して自分でつくれるほうがいいんですが・・・。 ちなみに当たり前のことを聞きますが、サーバーはPHPを使用できる環境ですよね? 余談で揚げ足とりになりますが、ブラウザとはWebを閲覧するアプリケーションなので、「ファイルをアップできるブラウザをつくりたい」等の記述は間違いです。

参考URL:
http://php.s3.to/net/#up
t-birdman
質問者

お礼

回答ありがとうございます。 PHPは使用できる環境でした。 用意されているものを使用してもいいのですが、おそらく僕が作ろうとしているのは、そんなに難しいものではないと思うので、できる限りやってみたいと思います。 あと質問内容とは別件でしたが、間違い指摘していただきありがとうございました。

  • fire--
  • ベストアンサー率49% (146/293)
回答No.1

>その先がうまくいきません。 という事ですが、何ができないか、なんらかのエラーが発生したとか いう情報があると具体的なコメントが付きやすいと思います。 とりあえず、以下が参考になるでしょうか。 http://php.benscom.com/manual/ja/features.file-upload.php

t-birdman
質問者

お礼

回答ありがとうございます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 でやったのですが…失敗になりました。 何か間違ってるところがあるんだと思います。 ご指摘いただければと思います。

関連するQ&A

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

    gooの画像アップローダーから画像をアップロードしたいのですが、できません。まず、参照をクリックしてファイルを開きます。それから、送信をするんですが、ページが表示されません。ワタシがアップロードしたいファイルは、C\DocumentsandSettings\聡美\MyDocuments\Mypictures\gazou005.jpgですが、これをどこをどういう風に書き直したらよいかもわかりません。書き直したファイル名をまず書いて教えていただけませんか? ほーむぺーじの場合は、まずサーバーに登録してからアップロードしますよね。ファイル画像の場合はどうなんでしょうか?あっぷろーどのまえになにかすることってありますか?そういうことも含めて教えてください ちなみに、ほかのサイとでも、アップロードを試みましたが、やはりだめでした。よろしくお願いします

  • ファイルアップロード

    私は、今、Javaで作成しているシステム上に画像アップロード機能を作成しています。 これは、アップロードする画像と同時に、テキストデータを送信したかったので、JavaCommonsのFileUploadを使用せずに、 http://homepage3.nifty.com/uzblend/servlet/#x71 こちらを参考に画像ファイルアップロードを作成しました。 ここで一つ困ったことが起きました。 ファイルをアップロードをして、ページを参照しても、すぐには画像が更新されず、サーバを再起動しないと更新されないです。 なんとか解決する方法はないでしょうか。 開発環境 WindowsXP J2SE 5.0 Tomcat5.0

    • ベストアンサー
    • Java
  • PHPのファイルアップロードについて

    現在CakePHPでファイルのアップロードを行おうとしています。 で一通りアップの手順は書き終わったのですが、じつはアップロードするファイルが マックスで100MBほどになる可能性があるのです。 現在、仮のサーバーで試してみたところ10~11MBほどのファイルであればちょっと時間がかかりますが、アップはできました。 ただしそれ以上の重いファイルになるとBadRequestとなりアップできません。 通常PHPはデフォルトでは2MBが最大アップ容量だと思います。 それの制限を #Apache側でのリクエストのバイト制限 LimitRequestBody 300000000 #PHP.ini側でのPOSTリクエストのバイト制限 php_value post_max_size 300M #PHP.iniでのファイルアップロードのバイト制限 php_value upload_max_filesize 300M 上記のような記述をhtaccessに記述しています。 ところが、12MB~以上のファイルになるとブラウザがBadRequetを返してしまいます。 これは実際のレンタルサーバーだけでなく、ローカルのApache環境でも同様の現象が起きます。 他に、アップ時に制限をかけているプロパテイ的なものがApacheやPHPの設定にあるのでしょうか? アップロードに詳しい方ご教授お願いいたします。

    • ベストアンサー
    • PHP
  • phpにてファイルをアップロード2

    先日質問させていただいたものなんですが、本やサイトを参考にして、以前とは違ったphpを使用してファイルをアップロードしようと考えています。 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <title><?php echo basename($PHP_SELF);?></title> </head> <body> <p>ファイルアップロード</p> <form method="POST" action="gazou_upload.php" enctype="multipart/form-data"> <input type="file" name="uploadfile"> <input type="submit" value="送信"> </form> <?php if(isset($uploadfile)) { // アップロードされたファイルのサイズを確認 if($uploadfile_size <= 2097152) { // 移動 $moveto = "/public_html/img" . basename($uploadfile_name); move_uploaded_file($uploadfile, $moveto) or die("アップロード失敗\n"); print "<p>ファイルをアップロードしました。 - $moveto</p>"; } } ?> </body> </html> 上記を使おうと思っているのですが、これを使用した場合、 (1)上記をhtmlとしておくだけで、ファイルのアップが可能になるのか?phpも必要ですよね? (2)この場合アップされたファイルはドコに保存されるのか?…僕はpublic_htmlの中のimgというフォルダに移動して欲しいのですが。 皆様お手数ですが、教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 画像のアップロードについて(move_uploaded_file)

    PHP初心者です。画像のアップロード機能を作成中です。 $path="/home/○○○/public_html/admin/w/p/5.jpg" move_uploaded_file($_FILES[MAINPHOTO]['tmp_name'], $path) で画像をアップしようとしたところ、次のエラーが出ます。 Warning: move_uploaded_file(/home/○○○/public_html/admin/w/p/5.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/○○○/public_html/admin/aaa.php on line 125 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phptC2x2A' to '/home/○○○/public_html/admin/w/p/5.jpg' in /home/○○○/public_html/admin/aaa.php on line 125 ローカルのadmin以下にw/pフォルダはきちんとあります。そこに5.jpgは存在してません。またアップする画像は別名です。 phpは4.2を使用しています。 サーバーはレンタルのkagoya.netを使用しています。 分かりやすい説明よろしくお願いします。

    • ベストアンサー
    • PHP
  • htmlファイルのアップロードについて質問です。

    htmlファイルのアップロードについて質問です。 web初心者です。 ブラウザ上で自分の作った仮のホームページを見たくて、作成したhtmlファイルと使用した画像を一つのフォルダにまとめて、cyberduckを使ってアップロードしました。 ドメインはさくらレンタルサーバーさんの初期ドメインを使用していて、そのドメインで検索したところ、index of というページしか表示されません。 無知で大変お恥ずかしいのですが、アップロードやドメインの仕組みがよくわかりません。 アドバイスをお願い致します。

  • 候補画像から選択して画像をアップロード

    通常、画像のアップロードは <form action="upload.php" method="post" enctype="multipart/form-data"> <p> 画像をアップロードする<br> <input type="file" name="pic"> </p> <p> <input type="hidden" name="code" value="<?php echo $code ?>"> <input type="submit" name="submit" value="アップロード"> </p> </form> というフォームを使っています。 ↓ ★画像アップロードフォーム http://pips.chu.jp/0/up/upload.php これで、「参照」を押すと、ローカルのフォルダから画像を選べますが、 あらかじめ作成した画像の候補の中から1つ選んでアップロードするにはどうすればよいでしょうか。 画像の候補は、「img」というフォルダを作り、その中に格納しています。 ↓ ★候補画像 http://pips.chu.jp/0/up/img/sample1.jpg http://pips.chu.jp/0/up/img/sample2.jpg http://pips.chu.jp/0/up/img/sample3.jpg 「参照」のボタンを押すと、「img」フォルダに行く方法が知りたいです。 また、ラジオボタンやセレクトボタンを使った方法があれば教えて頂けないでしょうか。 何卒よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのfsockopenを使用してファイルのアップロード方法

    PHPのfsockopenを使用してファイルのアップロード方法 宜しくお願い致します。 PHPでHTTPポートなどに接続させて、POSTやGETでデータを送信できるようにする関数のfsockopenを使用して、HTMLのformを使用せずにPHPプログラムのみでサーバ上にあるファイルを別のサーバへアップロードする方法はありませんか? 文字列を送信する事はできるので、ファイルのアップもできそうなのですが、やり方がわかりません。

    • ベストアンサー
    • PHP
  • phpを使ったアップロードサイトについて

    phpを使ってアップロードサイトを作りました アップロードを参照する際に、ディレクトリを指定する方法はありますでしょうか? お教えください なお、ページ自体は下記を参照しました http://www.php-labo.net/tutorial/php/upload.html よろしくお願いします

    • ベストアンサー
    • PHP
  • ファイルのアップロード

    ファイルのアップロードは http://49uper.com/memo/web/php_fileupload.html の手順でできました。そこで、 「アップロードが完了しました」の表示が出たあとに最初のアップロードボタンがある画面に戻りたいのですが、どのようにすればよいでしょうか?ブラウザの戻るボタンとかでは動作が変です。PHP初心者のためイメージがわきません。参考HPなどありましたら宜しくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう