PHP/サンプル/PHPによるファイルアップロードのサンプルコード
の編集
Top
/
PHP
/
サンプル
/
PHPによるファイルアップロードのサンプルコード
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * PHPスクリプトとHTMLによるファイルのアップロード [#fd4300a9] PHPによるファイルアップロードの環境構築とサンプルコードを以下に紹介します。~ 尚、Apache+PHP環境はすでに構築済みであることが前提です。~ 見構築の場合は以下の関連記事にあるLAMPやLAPP構築記事などを参考にしてください。 #contents #htmlinsert(ll_ads_top.html) * 関連記事 [#sc1d19f1] 以下の資料は[[LINUX.JUST4FUN.BIZ>http://linux.just4fun.biz]]で公開している資料です。 -[[UbuntuでLAMP環境を構築する>http://linux.just4fun.biz/Ubuntu/LAMP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]] -[[CentOSでLAMP環境を構築する>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7LAMP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]] -[[UbuntuでLAPP環境を構築する>http://linux.just4fun.biz/Ubuntu/LAPP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]] -[[CentOSでLAPP環境を構築する>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7LAPP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]] * 動作確認環境 [#b49ce643] $ lsb_release -d Description: Ubuntu 12.04.4 LTS $ apache2 -v Server version: Apache/2.2.22 (Ubuntu) Server built: Jul 12 2013 13:38:21 $ php --version PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:19:50) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies * アップロード先ディレクトリの環境設定 [#tc07ea3b] Apacheのドキュメントルート(Ubuntuの場合/var/www)にfileディレクトリをパーミッション777で作成しました。~ このディレクトリにアップロードしたファイルを保存することにします。 sakura@ubuntu:~$ cd /var/www/ sakura@ubuntu:/var/www$ sudo mkdir file sakura@ubuntu:/var/www$ sudo chmod 777 file * php.iniファイルの確認 [#c6ffbff4] php.iniファイルには以下に記す部分の記載があります。~ ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20 file_uploads, upload_max_filesize, max_file_uploads などの設定値があります。~ キーワードを見ればわかると思いますが念のために記載します。 |file_uploads|Onになっていないとファイルアップロードができません| |upload_max_filesize|アップロードできるファイルサイズの最大値を記します| この設定値が間違っているとファイルアップロードに失敗する可能性があるので注意してください。~ 尚、Ubuntuでは、/etc/php5/apache2/php.iniになります。~ 各インストール環境によってphp.iniの場所が違いますので注意してください。 * アップロード用HTMLの準備 [#t23bd66a] 以下のHTMLをApacheのドキュメントルートに配置します。(Ubuntuの場合は/var/www)~ パーミッションによりコピーやファイル作成ができない場合は、sudoコマンドやrootユーザーにスイッチしてファイルを配置してください。~ &ref(upload.html); (改行コードLF) <html> <body> <form enctype="multipart/form-data" action="upload.php" method="POST"> UPLOAD FILE : <input name="userfile" type="file" /> <input type="submit" value="UPLOAD!" /> </form> </body> </html> * アップロード処理用のPHPを準備 [#t8948285] &ref(upload.php); (改行コードLF) 以下のphpスクリプトをApacheのドキュメントルートに配置します。(Ubuntuの場合は/var/www)~ パーミッションによりコピーやファイル作成ができない場合は、sudoコマンドやrootユーザーにスイッチしてファイルを配置してください。 <?php $uploaddir = '/var/www/file/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "<b>Upload success.</b>"; } else { echo "<b>Upload failed.</b>"; } // DEBUG // print_r($_FILES); ?> * ブラウザによりHTMLにアクセス [#o550d894] +以下のURLを指定しブラウザでアクセスしてください。 http://配置したサーバー/upload.html #ref(01.gif) #br +アップロードするファイルを選択してください。 +UPLOAD!ボタンを押します。~ 注意:php.iniのupload_max_filesizeに指定したサイズを越したファイルはアップロードできませんので注意してください。 #ref(02.gif) #br ''Upload success.''が表示されるはずです。 + /var/www/fileを確認してみるとアップロードされているのが確認できます。 $ ls -l /var/www/file/ 合計 4 -rw-r--r-- 1 www-data www-data 14 3月 10 11:43 sample.txt 以上、PHPによるファイルのアップロード方法でした。 #htmlinsert(ll_ads_btm.html)
タイムスタンプを変更しない
#navi(../) * PHPスクリプトとHTMLによるファイルのアップロード [#fd4300a9] PHPによるファイルアップロードの環境構築とサンプルコードを以下に紹介します。~ 尚、Apache+PHP環境はすでに構築済みであることが前提です。~ 見構築の場合は以下の関連記事にあるLAMPやLAPP構築記事などを参考にしてください。 #contents #htmlinsert(ll_ads_top.html) * 関連記事 [#sc1d19f1] 以下の資料は[[LINUX.JUST4FUN.BIZ>http://linux.just4fun.biz]]で公開している資料です。 -[[UbuntuでLAMP環境を構築する>http://linux.just4fun.biz/Ubuntu/LAMP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]] -[[CentOSでLAMP環境を構築する>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7LAMP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]] -[[UbuntuでLAPP環境を構築する>http://linux.just4fun.biz/Ubuntu/LAPP%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89.html]] -[[CentOSでLAPP環境を構築する>http://linux.just4fun.biz/CentOS/CentOS%E3%81%A7LAPP%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89.html]] * 動作確認環境 [#b49ce643] $ lsb_release -d Description: Ubuntu 12.04.4 LTS $ apache2 -v Server version: Apache/2.2.22 (Ubuntu) Server built: Jul 12 2013 13:38:21 $ php --version PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:19:50) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies * アップロード先ディレクトリの環境設定 [#tc07ea3b] Apacheのドキュメントルート(Ubuntuの場合/var/www)にfileディレクトリをパーミッション777で作成しました。~ このディレクトリにアップロードしたファイルを保存することにします。 sakura@ubuntu:~$ cd /var/www/ sakura@ubuntu:/var/www$ sudo mkdir file sakura@ubuntu:/var/www$ sudo chmod 777 file * php.iniファイルの確認 [#c6ffbff4] php.iniファイルには以下に記す部分の記載があります。~ ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; http://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; http://php.net/upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ; http://php.net/upload-max-filesize upload_max_filesize = 2M ; Maximum number of files that can be uploaded via a single request max_file_uploads = 20 file_uploads, upload_max_filesize, max_file_uploads などの設定値があります。~ キーワードを見ればわかると思いますが念のために記載します。 |file_uploads|Onになっていないとファイルアップロードができません| |upload_max_filesize|アップロードできるファイルサイズの最大値を記します| この設定値が間違っているとファイルアップロードに失敗する可能性があるので注意してください。~ 尚、Ubuntuでは、/etc/php5/apache2/php.iniになります。~ 各インストール環境によってphp.iniの場所が違いますので注意してください。 * アップロード用HTMLの準備 [#t23bd66a] 以下のHTMLをApacheのドキュメントルートに配置します。(Ubuntuの場合は/var/www)~ パーミッションによりコピーやファイル作成ができない場合は、sudoコマンドやrootユーザーにスイッチしてファイルを配置してください。~ &ref(upload.html); (改行コードLF) <html> <body> <form enctype="multipart/form-data" action="upload.php" method="POST"> UPLOAD FILE : <input name="userfile" type="file" /> <input type="submit" value="UPLOAD!" /> </form> </body> </html> * アップロード処理用のPHPを準備 [#t8948285] &ref(upload.php); (改行コードLF) 以下のphpスクリプトをApacheのドキュメントルートに配置します。(Ubuntuの場合は/var/www)~ パーミッションによりコピーやファイル作成ができない場合は、sudoコマンドやrootユーザーにスイッチしてファイルを配置してください。 <?php $uploaddir = '/var/www/file/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "<b>Upload success.</b>"; } else { echo "<b>Upload failed.</b>"; } // DEBUG // print_r($_FILES); ?> * ブラウザによりHTMLにアクセス [#o550d894] +以下のURLを指定しブラウザでアクセスしてください。 http://配置したサーバー/upload.html #ref(01.gif) #br +アップロードするファイルを選択してください。 +UPLOAD!ボタンを押します。~ 注意:php.iniのupload_max_filesizeに指定したサイズを越したファイルはアップロードできませんので注意してください。 #ref(02.gif) #br ''Upload success.''が表示されるはずです。 + /var/www/fileを確認してみるとアップロードされているのが確認できます。 $ ls -l /var/www/file/ 合計 4 -rw-r--r-- 1 www-data www-data 14 3月 10 11:43 sample.txt 以上、PHPによるファイルのアップロード方法でした。 #htmlinsert(ll_ads_btm.html)
テキスト整形のルールを表示する
添付ファイル:
01.gif
596件
[
詳細
]
02.gif
597件
[
詳細
]
upload.html
705件
[
詳細
]
upload.php
646件
[
詳細
]