• 締切済み

ファイルのアップロードとダウンロードができるphp

ホームページで訪問者が自分のファイルをアップロード・ダウンロードできるPHPファイルを作りたいです。 アップロード・ダウンロード時にパスワードを設定し、その人物だけしかダウンロードできないようにしたいです。 サーバは自宅なので容量・回線も大丈夫です。

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

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

アップロードについては攻撃の対象になるため 設定に多少の設定が必要ですが、 formからtypeをfileでやるとよろしいかと思います。 参考: http://www.php.net/manual/ja/features.file-upload.php ダウンロードはヘッダーを設定して、readfileで データを流し込むだけなのでそれほど難しくないと 思います。 http://www.php.net/manual/ja/function.header.php http://www.php.net/manual/ja/function.readfile.php パスワードの処理はクッキーやhiddenやセッション でユーザー情報をサーバーにおくればよいでしょう。 これはアップロード・ダウンロードの処理を 拾得した後に学習してください

関連するQ&A

  • phpで巨大なファイルをアップロード

    お世話になります。 PHP・Apacheを使用して大きな容量のファイルをアップロードしようとしています。 php.iniで下記のように値を変更しました。 max_execution_time = 1800 max_input_time = 1800 memory_limit = 2048M post_max_size = 2048M upload_max_filesize = 2048M default_socket_timeout = 1800 この状態でApacheを再起動して1.2GBほどのファイルをアップロードしてみたのですが エラーも起こらず、正常にアップロードされたかと思ったら160バイト程の容量でサーバーにあがっていました。 600MBくらいのファイルでためしたところ正常にアップロードされたのですが 1GB以上のファイルをアップロードするためにはまだなにか設定が足りない、または間違っているのでしょうか? サーバーはCentOS5.5の64bit、メモリは16GBあります。 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • 自宅サーバにリモートからファイルをアップロードするには?

    自宅サーバを立ち上げて、リモートのPCから自分のサーバのホームページを見てもらえるようにはなりましたが、 そのリモートのPCから自宅サーバにファイルをアップロードするにはどうすればいいのでしょうか? FFFTPなんかを使う場合、パスワード、ホスト名、ユーザ名はどう設定すればいいのでしょうか? またもっと簡単にリモートからアップロードしてもらう方法はあるでしょうか。

  • 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のファイルアップロード・ダウンロードに関して

    PHPを用いて作成したいプログラムの内容は以下の通りです。 1. htmlフォームよりファイルをアップロード(テキストファイル) 2. アップロードされたファイルの中のデータに対して別のPHPプログラムを実行 3. 2の結果をhtmlにて表示、且つ結果ファイルのダウンロード です。 行き詰まっているのは、htmlから<input type="file">を用いて送信されたファイルはPHPでは$_FILESにそのファイルに関する情報が格納されると思いますが、別のPHPプログラムを実行する際にこのグローバル変数($_FILES)は使用できません。一度、move_uploaded_fileにてどこかのディレクトリに保存したファイルを、fopenなどで読み込んで実行させするしか方法はないでしょうか?すなわち、move_uploaded_fileなしでアップロードファイル内のデータを別のPHPプログラムで実行させる方法はないでしょうか? ダウンロードに関しても同様で、PHPプログラムの実行結果が納められた変数($XXXX)をダウンロードしたい場合、どこかのディレクトリに保存せずにこれをダウンロードさせる方法はないでしょうか? どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • アップロード ダウンロード

    初心者で自宅サーバーを作りました フリーソフトをアップロードしてるサイトから自由にダウンロードできるようにしてあるのをよく見ます そこで自分のWEBページにサーバー内もしくは外からアップロードしたファイルをダウンロード出来るようにするにはどうやったら出来るのでしょう? 親切に教えていただける方よろしくお願いいたします

  • アップロード後にphpが動かない

    すいません。初めてphpを組んでアップロードしてみたのですが、上手く動かずプログラムがそのまま表示されます。 普通のhtmlのみで作ったサイトは持っているのですが、phpは初めてでググっても実際にどのようにアップロードして動かすのか説明したサイトなどが見つからず困っています。 サーバーはさくらのレンタルサーバーでphpは使えます。 サーバーのphpの設定画面にphp.iniというのがありますがこれを何か弄らないとダメなのでしょうか? ローカル環境では動いたのですが、他に何が必要なのでしょうか? (ファイル名はちゃんとindex.phpとしてあります)

    • ベストアンサー
    • PHP
  • Apatch、PHPを用いたファイルのアップロード

    Apatch、PHPを用いたファイルのアップロード サーバ構築、PHPともに初心者です。 原因が全くわからないので、質問させて頂きます。 現在、ApatchとPHPを用いた、ファイルのアップロードシステムを考えています。 適当なファイルをアップロードする所までは順調なのですが、ファイルの容量が一定以上になるとアップロードが出来ません。 具体的な数値はわかりませんが、7.5MBのファイルは可能、8.2MBのファイルは不可能といった所です。 恐らく8MBが区切りだと考えています。 環境、設定等は以下の通りです。 --------------------------------------- [PC] OS:Windows XP SP2 Memory:2GB [ソフト・バージョン] Apatch2.2 PHP5.2.10 [php.ini内] uploads = On upload_tmp_dir = "C:/tmp"(十分な空き容量) upload_max_filesize = 500M post_max_size = 500M memory_limit = 512M max_execution_time = 10000 --------------------------------------- 上記以外に記載する必要のある項目があれば記載致します。 どなたか心当たりのある方がいらっしゃいましたら、是非ともご教示ください。

  • webdavを使ったファイルのアップロード、ダウンロードについて

    WebDAVを使ってファイルのアップロード、ダウンロードをする方法についてお聞きします。(サーバ側:linux, クライアント側:Windowsの場合) Windowsでネットワークプレースを追加することにより、マイネットワークからwebDAVを設定したサーバのディレクトリにアクセスでき、ファイルのアップロード、ダウンロードができますが、IEなどのブラウザでURLを開いただけでは、ファイルのアップロード、ダウンロードができたりはしないのでしょうか???

  • ファイルをダウンロードできるようにアップロード…・

    Excelファイルなどファイルをダウンロードできるようにアップロードする方法を教えてください。 ホームページビルダーでの自分のサイトや、Facebook、その他の方法で。 画像だけは、ダウンロードできます。 宜しくお願いします。

  • PHPでファイルのアップロード

    OSはLinuxのfedoraを利用しており、WebサーバーソフトはApacheを利用しています。 PHPを使って、クライアントからサーバーにファイルのアップロードをしたいのですが、プログラミングがあまり理解できておらず、アップロードができません。ちなみにphp.iniファイルの設定に関しては、アップロードは受け付けるようにしていますし、設定にミスはないと思います。 sample.phpというファイル名で下記のファイルを作ってみたのですが、アップロードすることができませんでした。まだPHPは初心者で間違いだらけだと思うのですが、こうすればアップロードできるようになるといった指摘をお願い致します。 <html> <head> <title> </title> </head> <body> <form enctype="multipart/form-data" action="sample.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> Send this file: <input name="userfile" type="file"> <input type="submit" value="Send File"> </form> <?php if(isset($uploadfile) and is_uploaded_file($uploadfile)) { if(move_uploaded_file($uploadfile, $path . "/var/www/html/test/" . $uploadfile_name)){ print("<br>Uploaded file saved."); }else{ print("<br>Uploaded file save failed."); } } ?> </body> </html>

    • ベストアンサー
    • PHP