ホームページ >php教程 >php手册 >PHPアップロード関数サンプルコード

PHPアップロード関数サンプルコード

WBOY
WBOYオリジナル
2016-06-13 12:17:291180ブラウズ

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

コードをコピー コードは次のとおりです。 form enctype= "multipart/form-data" action="upload.php" method="post">



1.

これはタグであることに注意してください。ファイルをアップロードする場合は、multipart/form-data として指定する必要があります。そうしないと、サーバーはアップロードしません。何をすべきか知っています。
2. ファイル Upload.html のフォーム オプション MAX_FILE_SIZE の非表示の値フィールドは、その値を設定することでアップロードされるファイルのサイズを制限できることに注意してください。
3. MAX_FILE_SIZE の値はブラウザーに対する単なる提案です。実際には、これは簡単に回避できます。したがって、ブラウザの制限を制限するためにこの値に依存しないでください。実際、PHP 設定の最大アップロード ファイル サイズは無効になりません。ただし、フォームに MAX_FILE_SIZE を含めたほうがよいでしょう。これにより、ユーザーは、大きなファイルがアップロードされるのを待ってから、そのファイルが大きすぎることに気づくまで時間を費やす手間が省けます。

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 に関連するいくつかのパラメータを簡単に紹介します。 PHP ファイルのアップロード:

file_uploads
HTTP スイッチによるファイルのアップロードを許可するかどうか、デフォルトは ON

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

upload_max_filesize
を使用します。アップロードできるファイルの最大サイズ。デフォルトは 2M です。



コードをコピー

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


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 '
}
if($ok == false){
echo '';
🎜>echo '
' .$message.'
'.$message.'
';
}
//フォーム送信を処理します
$action = (isset($_POST['action'])) $_POST['action'] : '' ;
$file = (isset($_POST['file'])) $_POST['file'] :'' ;
if($file != '') {
$ファイル = $ ファイル.'/';
$message_true = '';

switch($action){
ケース 'アップロード' :
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) ){
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', 'AAAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeeiiioooooouuuyy');
$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 ); 'すでにアップロードされたファイル: '.$_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'].'"
';}
}
}//
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 ){
?>


tr>


上传目的地址:
<名前="ファイル" を選択>
<オプション値="">
$repertoire = opendir(FILE_UPLOAD_DIR);
while( $file = readdir($repertoire) ) {
$file = str_replace('.','',$file);
if( is_dir($file)) {
?>

ファイルをアップロードします: ;input type="file" name="file_"> 新しいファイル名 (拡張子を含む):







声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。