> PHPファイルのアップロード~PHP TUTORIAL~: PHP入門 : – ネットワークエンジニアチュートリアル

PHPファイルのアップロード~PHP TUTORIAL~: PHP入門 :

スポンサーリンク

無料でプログラマへ!30歳までなら無料でプログラミング学校に通うことが出来ます。下の画像をクリックして無料相談会でGO!

~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp

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

PHPスクリプトをHTMLフォームとともに使用すると、ユーザーがファイルをサーバーにアップロードできるようになります。最初に、ファイルは一時ディレクトリにアップロードされ、PHPスクリプトによってターゲットの場所に再配置されます。

php.iniをいじらないといけないんですが、ここでは割愛します

アップロードフォームの作成

下記のHTMコードは、アップローダフォームを作成します。このフォームは、メソッド属性がpostに設定されており、enctype属性がmultipart / form-dataに設定されています。

<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size =$_FILES['image']['size'];
      $file_tmp =$_FILES['image']['tmp_name'];
      $file_type=$_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $expensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$expensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>
      
      <form action="" method="POST" enctype="multipart/form-data">
         <input type="file" name="image" />
         <input type="submit"/>
      </form>
      
   </body>
</html>

アップロードスクリプトの作成

$ _FILESという1つのグローバルなPHP変数があります。この変数は、関連する二次元配列であり、アップロードされたファイルに関連するすべての情報を保持します。したがって、フォームのアップロード時に入力のname属性に割り当てられた値がfileだった場合、PHPは次の5つの変数を作成します。

  • $ _FILES [‘file’] [‘tmp_name’] – Webサーバーの一時ディレクトリにアップロードされたファイル。
  • $ _FILES [‘file’] [‘name’] – アップロードされたファイルの実際の名前です。
  • $ _FILES [‘file’] [‘size’] – アップロードされたファイルのサイズ(バイト単位)。
  • $ _FILES [‘file’] [‘type’] – アップロードされたファイルのMIMEタイプです。
  • $ _FILES [‘file’] [‘error’] – このファイルのアップロードに関連するエラーコードです。

以下の例では、アップロード画像を許可し、結果をアップロードされたファイル情報として返します。

<?php
   if(isset($_FILES['image'])){
      $errors= array();
      $file_name = $_FILES['image']['name'];
      $file_size = $_FILES['image']['size'];
      $file_tmp = $_FILES['image']['tmp_name'];
      $file_type = $_FILES['image']['type'];
      $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
      
      $expensions= array("jpeg","jpg","png");
      
      if(in_array($file_ext,$expensions)=== false){
         $errors[]="extension not allowed, please choose a JPEG or PNG file.";
      }
      
      if($file_size > 2097152) {
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true) {
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>
<html>
   <body>
      
      <form action = "" method = "POST" enctype = "multipart/form-data">
         <input type = "file" name = "image" />
         <input type = "submit"/>
			
         <ul>
            <li>Sent file: <?php echo $_FILES['image']['name'];  ?>
            <li>File size: <?php echo $_FILES['image']['size'];  ?>
            <li>File type: <?php echo $_FILES['image']['type'] ?>
         </ul>
			
      </form>
      
   </body>
</html>




前のページ⑱PHPを使用して電子メールの送信

 

スポンサーリンク

ネットワークエンジニアになりたければ下記から無料相談会に参加!
なんと無料で授業を受けれてエンジニアになれます

投稿日:2017-09-26 更新日:

執筆者: