[[ノート/ノート]]~

訪問者数 &counter();      最終更新 &lastmod();

*サーバーの構成要素 [#o153ae36]
**PHPで複数ファイルをアップロードする [#o07a020e]
-[[複数ファイルをアップロードする方法:http://php.net/manual/ja/feature-fileupload.multiple.php]]
 <form action="file-upload.php" method="post" enctype="multipart/form-data">
   Send these files:<br />
   <input name="userfile[]" type="file" /><br />
   <input name="userfile[]" type="file" /><br />
   <input type="submit" value="Send files" />
 </form>
 上記のフォームで投稿された場合、配列 $_FILES['userfile'], つまり、
 $_FILES['userfile']['name'][i], $_FILES['userfile']['size'][i], $_FILES['userfile']['tmp_name'][i],
 $_FILES['userfile']['type'][i] 
 が設定されます。
 例えば、ファイル名が /home/test/review.html および /home/test/xwp.out のファイルが 投稿されると、
 $_FILES['userfile']['name'][0] の値が review.html となり、$_FILES['userfile']['name'][1] の値が
 xwp.out となります。
 尚、max_file_uploads は一回のリクエストあたりでアップロードできるファイルの数の制限値となります。

上記だと、アップロードファイル指定画面で、ファイルを別欄に1つ1つ指定しなければならないので、やりにくい。

-[[HTML5でファイル複数同時アップロード:http://suin.asia/2011/01/23/html5_input_multiple]]~
 <form action="file-upload.php" method="post" enctype="multipart/form-data">
   Send these files:<br />
   <input name="userfile[]" type="file" multiple/><br />
   <input type="submit" value="Send files" />
 </form>
上記<input type="file">のところに、multiple と指定するだけ。これで、選択画面で複数ファイルを同時選択(WindowsならばCTRLキーを押しながら左クリック)できる。

これを使った、もう少し実際的なプログラムの例:~
これを使った、もう少し実際的な(動いた)プログラムの例:~
multifile.html
 <html>
 <body>
 <form action="multifile.php" method="post" enctype="multipart/form-data">
   Send these files:<br />
   <input type="hidden" name="MAX_FILE_SIZE" value="300000" />
   <input name="userfile[]" type="file" multiple/><br />
   <input type="submit" value="Send files" />
 </form>
 </body>
 </html>

multifile.php
 <?php
   $count = count($_FILES['userfile']['name']);
   print($count . '<br>');
   for ($i=0; $i<$count; $i++) {
     print($_FILES['userfile']['name'][$i] . '<br>');
     print($_FILES['userfile']['tmp_name'][$i] . '<br>');
 
     if (is_uploaded_file($_FILES["userfile"]["tmp_name"][$i])) {
       if (move_uploaded_file($_FILES["userfile"]["tmp_name"][$i], "files/" . $_FILES["userfile"]["name"][$i])) {
         chmod("files/" . $_FILES["userfile"]["name"][$i], 0644);
         echo $_FILES["userfile"]["name"][$i] . "をアップロードしました。<br>";
       } else {
         echo "ファイルをアップロードできません。<br>";
       }
     } else {
       echo "ファイルが選択されていません。<br>";
     }
   }
 ?>

**PHPから実行ファイルを呼び出す [#w31f0745]
-[[system()を使う:http://www.php.net/manual/ja/function.system.php]]
 <?php
 echo '<pre>';
 // シェルコマンド "ls" の全ての結果を出力し、出力の最後の
 // 行を $last_line に格納します。シェルコマンドの戻り値は
 // $retval に格納されます。
 $last_line = system('ls', $retval);
 
 // 追加情報を表示します。
 echo '
 </pre>
 <hr />Last line of the output: ' . $last_line . '
 <hr />Return value: ' . $retval;
 ?>

-[[exec()を使う:http://www.php.net/manual/ja/function.exec.php]]
 <?php
 // ("whoami" コマンドをパスに有するシステム上で)
 // 実行中のphp/httpdプロセスを所有するユーザの名前を出力
 echo exec('whoami');
 ?>

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS