ホームページ > バックエンド開発 > PHPチュートリアル > PHP ファイルアップロードガイド_PHP チュートリアル

PHP ファイルアップロードガイド_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:38:50
オリジナル
745 人が閲覧しました

1. フォーム パーツ
ユーザーがファイルをアップロードできるようにするには、HTML フォームの宣言にアップロード属性を追加する必要があります。
enctype = 'multipart/form-data'
フォームのメソッドは POST である必要があります。オプション MAX_FILE_SIZE は隠しフィールドに使用されます。アップロードされるファイルのサイズを制限するには、ファイル フォーム要素の前にバイト単位で配置する必要があります。
例:

コードをコピーします コードは次のとおりです:
入力タイプ='隠し' 名前='MAX_FILE_SIZE' 値='2621114'
<入力名='アップロードファイル'
< /form>


2. アップロードされたファイルの処理
アップロード時に、PHP はスーパー グローバル配列 $_FILES にあるファイルに関する配列を受け取ります。
例: フォームのファイル入力ボックスの名前が Upload_file の場合、ファイルに関するすべての情報は配列 $_FILES['upload_file'] に含まれます。
例: 顧客は次のように「aaa.jpg」画像配列値をアップロードしました:
name "p5pp.jpg" アップロード時のファイルの名前
type "image/jpeg" ファイルの種類
tmp_name "/tmp/phpjksdf " サーバー側の一時 ファイル名
error アップロード エラーの戻り値
size 2045 ファイルの実際のサイズ

上記の配列のエラーは、次のように異なる定数値を返します:
UPLOAD_ERR_OK エラーは発生しませんでした、ファイルはアップロードに成功しました
UPLOAD_ERR_INI_SIZE ファイル サイズが PHP.INI を超えています Upload_max_filesize オプションの制限値を超えています
UPLOAD_ERR_FORM_SIZE アップロードされたファイルのサイズが HTML フォームの MAX_FILE_SIZE オプションの値を超えています。処理するプログラムで $FILES ['up_file']['size'] の形式を確認できます
UPLOAD_ERR_PARTIAL ファイルの一部のみがアップロードされました
UPLOAD_ERR_NO_FILE ユーザーはファイルのアップロードを提供しませんでした
アップロード後の処理の具体的な例:


コードをコピー コードは次のとおりです:
if(!move_uploaded_file($_FILES['f']['tmp_name'],"uploads/".$_FILES['f']['name '].".jpg")){
echo "error";
}


機能:
move_uploaded_file アップロードされた一時ファイルを指定されたディレクトリに移動します
例:
move_uploaded_file('一時ファイル名','指定されたファイルパス')

is_uploaded_file は、http アップロードされたファイルを投稿するかどうかを決定します
例:


コードをコピー コードは次のとおりです:
if(!is_uploaded_file($_FILES['f']['tmp_name' ])){
エコー「違法」
}

;

3. 関連パラメータ

PHP アップロード用に設計された php.ini のパラメータ:
file_uploads ファイルのアップロードを許可するかどうか、デフォルトは ON です

upload_tmp_dir ファイルのアップロードを防止するための一時ディレクトリ (指定されていない場合は、システムのデフォルトを使用します) location

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

post_max_size は、PHP ファイルのアップロードを使用する場合、PHP がフォーム送信で受け入れることができるデータの最大量を制御します。大きい

max_input_time は、POST/GET/PUT メソッドを介してデータを受信する時間を秒単位で制限します。

memory_limit スクリプトの実行による大量のシステム メモリの使用を避けるために、PHP ではメモリ使用量の制限を定義できます。このパラメータを設定して、単一のスクリプト プログラムが使用できる最大メモリ容量を指定します。この値は post_max_size 値より適切に大きくする必要があります。

max_execution_time は、スクリプトを強制終了する前に PHP がスクリプトの実行を待機する時間を設定するために使用されます。 、 すぐに。この 2 番目のオプションでは無限ループ スクリプトを制限できますが、この機能により、正当なアクティビティ (大きなファイルのアップロードなど) が長期間続くと操作が失敗する可能性もあります。この場合、この変数を増やすことを検討する必要があります。

4. 複数のファイルのアップロードを検討してください
$_FILES 配列を使用すると、複数のファイルを簡単にアップロードできます。 $_FILES 配列はクライアント フォームのすべてのファイル フィールドの内容を取得できるため、同じフォームでアップロードされたすべてのファイルを取得できます。

5. アップロードメモリ制限を突破する

方法 1:
php.ini のmemory_limit 値をより大きな値 (64M など) に変更します
方法 2:
Apache Rewrite メソッドを使用して、メモリ制限。まず .htaccess ファイルを作成し、ファイル アップロード プログラムの現在のディレクトリに保存します。 コードは次のとおりです:
php_valuememory_limit 100M
php_value post_max_size 30M
php_value max_execution_time 300
php_value max_input_tim 300
php _value 表示_エラー オン

http://www.bkjia.com/PHPjc/321666.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/321666.html技術記事 1. フォーム パーツでは、ユーザーがファイルをアップロードできるようにします。アップロード属性を HTML フォームの宣言に追加する必要があります。 enctype = 'multipart/form-data' フォームのメソッドは POST フォーム オプション MAX_FI... である必要があります。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート