*PHPでServerにFileをUploadする [#ee15a05b]

RIGHT:更新日&lastmod();

**PHPでのFileのUpaledについて [#ic1517b2]
htmlではデフォルトでFileをアップロードすると/tmpにランダムな名前で一度Uploadされる。そこで、UploadするPHPではそのときのFile名をサーバ変数から取得し、適当なフォルダに名前を変更して移動する。またMIME情報もサーバ変数に入るのでその情報から拡張子を決めることもできるし、local側のファイル名もサーバ変数から取得できる。(ただし、日本語ファイル名については未確認)~
ファイルサイズはHTML側で最大を指定できるがphp.iniのupload_max_filesize (Default 2MB)を越えられない。大きくするときはこの値も大きくする必要があるようだ。

/tmpは一時ファイルなのでPHPが終了すると消える。その他php.iniにはuploadのパラメータがfile_uploads, upload_max_filesize, upload_tmp_dir, post_max_size, max_input_time なんかがあるので注意する

''UploadするForm''~

 <HTML>
 <HEAD>
 <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=euc-jp">
 <META HTTP-EQUIV="Cache-control" CONTENT="no-cache">
 <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
 <TITLE>Upload TEST</TITLE>
 </HEAD>
 <BODY>
 <FORM ACTION="upload.php" METHOD="POST" ENCTYPE="multipart/form-data">
                                         ^^^^^^^^<==これが必要
 <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="1024000">  <==Fileサイズの指定
 <INPUT TYPE="file" NAME="img1" SIZE="40">
 <P>(Max Size 1MB)
 <input type="submit" value="アップロード">
 </FORM>
 </BODY>
 </HTML>

''受けるPHP側''

下のファイルでは../images/abc.(jpg|png|gif)で保存される

 <?php
 
 //------------------------------------------------------
         $img1 = $_FILES['img1'];                 // アップロードファイルオブジェクト
         $img1tmp = $_FILES['img1']['tmp_name'];  // /tmp内のファイル名
         $img1name = $_FILES['img1']['name'];     // ローカルファイル名
         $img1size = $_FILES['img1']['size'];     // Fileサイズ
         $img1type = $_FILES['img1']['type'];     // MIMEタイプ
 
 echo "Local FileName $img1name <=> Server FileName $img1tmp <Br>";
 if (is_uploaded_file($img1tmp)){
         if ($img1type=="image/gif"){$kaku=".gif";}
         if ($img1type=="image_png" || $img1type=="image/x-png"){$kaku=".png";}
         if ($img1type=="image/jpeg" || $img1type=="image/pjpeg"){$kaku=".jpg";}
         if ($kaku==""){$error="アップロード画像に誤りがあります(送信可能はGIF,JPG,PNGだけです)";}
         if ($kaku!=""){
                  $imgfilename = "abc" .$kaku;
                 move_uploaded_file($img1tmp, "../images/". $imgfilename);
                 echo "<P> Upload 成功 <BR>";
         }else{
                 echo "<P> Upload 失敗 <BR>";
         }
 }else{
         echo "<P>Uploadファイルがありません<Br>";
 }
 ?>

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