ホームページ  >  記事  >  バックエンド開発  >  PHP ファイルのアップロード フォームは drupal code_PHP チュートリアルから抽出されています

PHP ファイルのアップロード フォームは drupal code_PHP チュートリアルから抽出されています

WBOY
WBOYオリジナル
2016-07-21 15:31:47693ブラウズ

drupal ファイルアップロードフォームの例

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

function Upload_form() {
$form = array();
// この #attribute が存在しない場合、アップロードは送信時に失敗します
$form['#attributes']['enctype'] = 'multipart/form-data';
$form['file_upload'] = array(
'#title' => t('ファイルのアップロード'),
'#type' => 'ファイル',
);
$form['submit_upload'] = array(
'#type' => 'submit',
'#value' => '送信'
) ;
return $form
}
$validators = array();
$file = file_upload' $validators, $ dest);
//$file は、アップロードが存在しない場合、または $dest ディレクトリが書き込み可能でない場合は 0 になります
if ($file != 0) {
$file-> ;filepath; / / ファイルの相対パス
}
else {
form_set_error('myform', t("Failed to save the file."))
}
}



PHP ファイルアップロード関数のコード例チュートリアル

PHP Web サイトで開発された、PHP プログラムにファイルのアップロード機能を実装する方法は、初心者にとって常にトピックでした。また、画像のアップロードなど、ファイルアップロード機能は一般的に便利です。今日は、PHP 初心者が学ぶのに適した、具体的なコード例と詳細な注釈に基づいた PHP ファイルアップロードコードの書き方を紹介します。 PHP コード例では、主に画像のアップロードについて説明しています。プログラムを理解した後、関連するファイルの種類を変更して、他のファイルのアップロード機能を実現できます。 プログラミング環境
PHP5.2.4、基本的にPHP4.3以上であればこのコードが利用可能です
準備作業
upload_tmp_dir項目を確認してください
PHP開発環境を自分で構築する場合、ファイルアップロードプログラムを書く前にphpを編集する必要があります.ini ファイルで、ファイルをサーバーにアップロードするときに一時フォルダーを設定するために使用される、upload_tmp_dir オプション (upload_tmp_dir = E:/phpos/uploads など) を見つけて編集し、Apache を再起動します。 PHP 開発環境で確実なワンクリック インストール パッケージが使用されている場合、通常、upload_tmp_dir が設定されており、phpinfo() 関数を使用して構成を確認することもできます。
アップロードファイルを記述し、ファイルアップロードフォームを設定します



コードをコピーします
コードは次のとおりです:
submit" value=" ファイルをアップロード">



注意
1. ファイルに通常のフォーム情報が含まれていることをサーバーに知らせるために、フォーム内で enctype="multipart/form-data" を指定する必要があります。
2. アップロードされるファイルの最大長、つまりアップロードされるファイルの最大値(バイト単位で計算)を設定できるフォーム領域が必要です。それは隠し値フィールド、つまりmax_file_sizeです。値のサイズを設定することでアップロードされるファイルを制限できるため、ユーザーは、大きなファイルがアップロードされるのを待ってから、そのファイルが大きすぎることに気づくという手間を省くことができます。ただし、一般に他のユーザーはこの値をバイパスできるため、安全上の理由から、php.ini ファイルの Upload_max_filesize オプションを設定してファイルのアップロードのサイズを設定することが最善です。デフォルトは 2M です。
ファイルアップロードプログラム



コードをコピー

コードは次のとおりです:
function Uploadfile($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir) { $MAX_SIZE = 2000000;
$FILE_MIMES = array('image/pjpeg','image/jpeg','image/jpg','image/gif','image/png'); .jpg' ,'.gif','.png','.JPG','.GIF','.PNG');
$file_path = $upload_dir.$targetname
if(!is_dir($upload_dir);
{
if(!mkdir($upload_dir))
die("ファイル アップロード ディレクトリが存在しないため、ファイル アップロード ディレクトリを作成できません");
if(!chmod($upload_dir,0755))
die("ファイルアップロードディレクトリの権限を設定できません 読み書き可能に設定してください");
}
if($size>$MAX_SIZE)
die("アップロードされたファイルサイズが指定サイズを超えています");
if($size = = 0)
die("アップロードされたファイルを選択してください");
if(!in_array($type,$FILE_MIMES) || !in_array($ext,$FILE_EXTS))
die("次の条件を満たすファイル タイプをアップロードしてください要件");
if(!move_uploaded_file( $tmp_name, $file_path))
die("ファイルのコピーに失敗しました。再アップロードしてください");
switch($error)
{
case 0:
return;
case 1:
die("アップロードされたファイルが php の .ini の Upload_max_filesize オプションで制限された値を超えています");
ケース 2:
die("アップロードされたファイルのサイズが HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています");
ケース 3:
die("ファイルの一部のみがアップロードされました" );
ケース 4:
die("ファイルはアップロードされていません");
}
}


パラメータの説明
$type,$name,$size,$error,$tmp_name は、グローバル変数 $_FILES の関連変数に対応します。つまり:
$_FILES['userfile']['type']: MIME タイプファイル (必須) ブラウザは、画像タイプ「image/gif」などのこの情報をサポートします。
$_FILES['userfile']['name']: クライアント ファイルの元の名前。
$_FILES['userfile']['size']: アップロードされたファイルのサイズ (バイト単位)。
$_FILES['userfile']['tmp_name']: ファイルのアップロード後にサーバーに保存される一時ファイル名。
$_FILES['userfile']['error']: ファイルのアップロードに関連するエラー コード、つまり
値: 0: エラーは発生せず、ファイルは正常にアップロードされました。
値: 1: アップロードされたファイルは、php.ini の Upload_max_filesize オプション制限の値を超えています。
値: 2: アップロードされたファイルのサイズが、HTML フォームの MAX_FILE_SIZE オプションで指定された値を超えています。
値: 3: ファイルの一部のみがアップロードされました。
値: 4: ファイルはアップロードされませんでした。
$ext: アップロードファイルの拡張子
$targetname: ファイルがアップロードされた後の最終的なファイル名
$upload_dir: 相対パスを使用してアップロードするディレクトリ
注:
3行目~6行目: 画像ファイルのサイズを設定しますこのコードは画像ファイルのアップロード プログラムであるため、PNG、GIF、JEPG などのすべての画像タイプが 2 つの配列にリストされます。
17行目〜24行目: ファイルが空の場合、サイズは0に等しく、画像ファイルの拡張子または種類が一致しない場合は飛び出します。
26 行目: move_uploaded_file 関数の機能は、upload_tmp_dir で設定されたサーバー上の一時ディレクトリ内のファイルを、$file_path で指定されたファイルに移動することです。対象のファイルが既に存在する場合、対象のファイルは上書きされます。複数のファイルをアップロードするにはどうすればよいですか?たとえば、同時に 3 つのファイルをアップロードするには、


コード を次のように変更するだけです。


に変更します。
コードをコピーします

コードは次のとおりです:
これに応じて、この関数を呼び出すとき、$_FILES['userfile']['name'][0] は最初のファイルの関連ファイル情報を表します。ファイルなど 同様に、他の場合にも同じことが当てはまります。
まとめ
この関数は、PHP ファイルアップロードの最も単純なコアコードです。画像アップロードはその 1 つであり、他の種類のファイルアップロード関数を実現するには、$FILE_MIMES 配列と $FILE_EXTS 配列の関連情報を変更または拡張するだけで済みます。関数の周囲には、必要に応じて他の関連コードを記述し、データベースとの関連付けなどの他の機能を実現できます。


http://www.bkjia.com/PHPjc/322934.html

www.bkjia.com

tru​​e

技術記事 drupal ファイルのアップロード フォームの例は次のようにコピーされます: function Upload_form() { $form = array(); // この #attribute が存在しない場合、アップロードは送信時に失敗します $form['#attri...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。