phpファイルアップロードの例とパラメータの詳細

8121 ワード

1.アップロードフォームupload.html
プログラムコードHTML
 
  
 
 
   
 
 

1.これはラベルです.ファイルのアップロードを実現するには、multipart/form-dataとして指定する必要があります.そうしないと、サーバは何をするか分かりません.2.注目すべきはファイルuploadです.htmlのフォームオプションMAX_FILE_SIZEの隠し値フィールドは、そのValue(値)を設定することでアップロードファイルのサイズを制限できます.3.MAX_FILE_SIZEの値はブラウザへのアドバイスにすぎず、実際には簡単に迂回することができます.したがって、ブラウザに対する制限をこの値に期待しないでください.実際、PHP設定のアップロードファイルの最大値は、失効しません.ただし、フォームにMAX_を付けたほうがいいです.FILE_SIZEは、ユーザーが大きなファイルのアップロードを待つのを避けることができるため、このファイルが大きすぎることに気づく面倒を避けることができます.
PHPアップロードファイルに関するパラメータ
プログラムコードPHP
 
  
$f=&$HTTP_POST_FILES['Myfile']; 
$dest_dir='uploads';//  
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//  
$r=move_uploaded_file($f['tmp_name'],$dest); 
chmod($dest, 0755);//  

または
 
  


上記の例では$FILES配列の内容は以下の通りです.ファイルアップロードフィールドの名前をuserfileと仮定します(名前は任意に命名できます)
$_FILES['userfile'][name']クライアントマシンファイルの元の名前.$FILES['userfile'['type']ファイルのMIMEタイプは、ブラウザが「image/gif」などの情報のサポートを提供する必要があります.$FILES['userfile']['size']は、バイト単位でアップロードされたファイルのサイズです.$FILES['userfile'['tmp_name']ファイルがアップロードされた後、サービス側に格納された一時ファイル名.$FILES['userfile'][error']とこのファイルのアップロードに関するエラーコード値:0;エラーは発生せず、ファイルのアップロードに成功しました.値:1;アップロードされたファイルはphpを超えています.iniでupload_max_filesizeオプションの制限値.値:2;アップロードファイルのサイズがHTMLフォームのMAX_を超えています.FILE_SIZEオプションで指定した値.値:3;ファイルは一部のみアップロードされます.値:4;ファイルがアップロードされていません.
PHPのデフォルトのアップロード制限は最大2 Mで、この設定を超えるファイルをアップロードするには、PHP、apacheなどのパラメータを調整する必要がある.PHPファイルのアップロードに関するパラメータを簡単に説明します.
file_uploadsがHTTPでファイルをアップロードするスイッチを許可するかどうか、デフォルトはON
upload_tmp_dirupload_tmp_dirはPHPがアップロードしたファイルの配置を説明するための一時ディレクトリであり、ファイルをアップロードするには、サーバが一時ファイルを閉じる権限とフォルダへの書き込み権限を持っていないことを保証し、指定しない場合はPHPはシステムのデフォルト値を使用する.
upload_max_ファイルサイズの最大値をアップロードできます.デフォルトは2 Mです.
PHP
 
  
define('MUILTI_FILE_UPLOAD', '10'); // 10  
define('MAX_SIZE_FILE_UPLOAD',  '500000' ); // 5MB 
define('FILE_UPLOAD_DIR', 'd:/'); //  
//  
$array_extention_interdite = array( '.php' , '.php3' , '.php4' , '.exe' , '.msi' , '.htaccess' , '.gz' ); //  

//  
function func_message($message='', $ok=''){ 
echo ''; 
if($ok == true){ 
echo '' ; 
}  // www.jb51.net
if($ok == false){ 
echo ''; 

echo '
'.$message.'
'.$message.'
';    

//  
$action = (isset($_POST['action'])) ? $_POST['action'] :'' ; 
$file = (isset($_POST['file'])) ? $_POST['file'] :''  ; 
if($file != '') { 
    $file = $file.'/'; 

$message_true = ''; 
$message_false = ''; 

switch($action){ 
case 'upload' :    
chmod(FILE_UPLOAD_DIR,0777);    
for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){     
if( $_FILES['file_'.$nb]['size'] >= 10 ){  
  if ($_FILES['file_'.$nb]['size'] <= MAX_SIZE_FILE_UPLOAD ){ 
if (!in_array(ereg_replace('^[[:alnum:]]([-_.]?[[:alnum:]])*\.' ,'.', $_FILES['file_'.$nb]['name'] ) , $array_extention_interdite) ){ 
                    if($_POST['file_name_'.$nb] !=''){ 
                        $file_name_final = $_POST['file_name_'.$nb].$extension ; 
                    }else { 
                        $file_name_final = $_FILES['file_'.$nb]['name'] ; 
                    } 
                    //  
                    $file_name_final = strtr($file_name_final, 'aaaaaa',      'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
                    $file_name_final = preg_replace('/([^.a-z0-1]+)/i', '_', $file_                                    name_final ); 

                    $_FILES['file_'.$nb]['name'] = $file_name_final;        
                     move_uploaded_file( $_FILES['file_'.$nb]['tmp_name'] , FILE_UPLOAD_ DIR .                            $file . $file_name_final ); 

                    $message_true .= ' : '.$_FILES['file_'.$nb]['name'] .'
'; 
                }else{ 
                    $message_false .= ' : '.$_FILES['file_'.$nb]['name'] .'
'; 
                } 
                }else{ 
                    $message_false .= ' '.MAX_SIZE_FILE_UPLOAD/1000 . 'KB : "                               '.$_FILES['file_'.$nb]['tmp_name'].'"
';} 
                } 
    }//end for 
    break; 

?> 
 
 
 
 
 
 
 
 
 
 


 
if($message_true != '') {  func_message($message_true, true); } 
if($message_false != ''){  func_message($message_false, false); } 
?> 
 
for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){  
?> 
 
 
 
 
 
 

 

( ):
: