ホームページ  >  記事  >  バックエンド開発  >  PHPファイルのアップロード例とパラメータの詳細説明_PHPチュートリアル

PHPファイルのアップロード例とパラメータの詳細説明_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:18:08699ブラウズ

1.アップロードフォームupload.html

プログラムコード
HTML

コードをコピー コードは次のとおりです:

;input type="hidden" name="max_file_size" value="100000">
input type="submit" value="ファイルをアップロード" >

1. 注記 これはタグです。ファイルをアップロードする場合は、multipart/form-data を指定する必要があります。そうしないと、サーバーは何をすべきかを認識できません。する。
2. ファイル Upload.html のフォーム オプション MAX_FILE_SIZE の非表示の値フィールドは、その値を設定することでアップロードされるファイルのサイズを制限できることに注意してください。
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 のデフォルトのアップロード制限は最大 2M です。この設定を超えるファイルをアップロードする場合は、PHP や Apache などのいくつかのパラメーターを調整する必要があります。以下では、PHP ファイルのアップロードに関連するいくつかのパラメーターを簡単に紹介します。
file_uploads
HTTP 経由でのファイルのアップロードを許可するように切り替えます。デフォルトは ON です

upload_tmp_dir

upload_tmp_dir は、PHP によってアップロードされたファイルが配置される一時ディレクトリを記述するために使用されます。ファイルをアップロードする場合は、サーバーが一時ファイルを閉じていないこと、およびフォルダーへの書き込み権限があることを確認する必要があります。指定されていない場合は、 PHP はシステムのデフォルト値を使用します

upload_max_filesize
許可されるアップロード ファイルの最大サイズ、デフォルトは 2M です

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 '< td width="100"> ;
} / / www.jb51.net
if($ok == false){
echo ''
}
echo '
'.$message.'
' .$message.'
'
//フォーム送信の処理
$action = (isset( $_POST['アクション' ])) $_POST['アクション'] :''
$file = (isset($_POST['ファイル']) :'' ; if($file != '') {
$file = $file.'/';
$message_true = ''
$message_false = '';
case 'アップロード' :
chmod(FILE_UPLOAD_DIR, 0777);
for($nb = 1; $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){
') _FILES['file_'.$nb]['name'] ;
ファイル名の変更
$file_name_final = strtr($ name_final = preg_replace('/( [^.a-z0-1]+)/i', ' _ '、$ file_move_uploaded_file($ _files [' file _ '。$ nb] [' tmp_name ']、file_upload_ dir。。 nb]['名前'] .'
 
}else{
$message_false .= '文件尺寸超过'.MAX_SIZE_FILE_UPLOAD/1000 . 'KB : " '.$_FILES['file_'.$nb]['tmp_name'].'"
';}
}
}//end for
休憩; 
}
?> 
 
 
多文件上传 
 
.border{background-color:#000000}
.box{background-color:#f8f8f9;}
.text{ color:#000000; 
フォントファミリー: 宋体; 
フォントサイズ: 12px; 
font-weight:bold}
input, select{font-size: 12px;}
body {
margin-top: 8px; 
}
 
 
 
 
 
 
 


 
if($message_true != '') { func_message($message_true, true); }
if($message_false != ''){ func_message($message_false, false); }
?> 
 
for($nb = 1 ; $nb <= MUILTI_FILE_UPLOAD ; $nb ++ ){
?> 
 
 
 
 
 
 
上传目的地址: 
<名前="ファイル" を選択>        
 
$repertoire = opendir(FILE_UPLOAD_DIR);  
while( $file = readdir($repertoire) ) {
$file = str_replace('.','',$file); 
if( is_dir($file)) {
?>

}
}
closedir($repertoire);
?>


 

上传文件: 新しい文件名(扩展名を含む):





www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/621691.html技術記事 1.上传表单 Upload.html 程序代码 HTML 复制代码 代码如下: form enctype="multipart/form-data" action="upload.php" method="post" input type="hidden" name="max_file_size...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。