ファイルアップロードの原則:
クライアントのファイルをサーバーにアップロードし、サーバーの一時ファイルを指定されたディレクトリに移動します。
クライアント構成:
1. フォームページ
2. フォームは郵送でお送りします
3. enctype=”multipart/form-data”を追加
$_FILESにはアップロードされたファイルの情報が保持されます
name: アップロードされたファイルの名前
type: アップロードされたファイルの MIME タイプ
tmp_name: サーバーにアップロードされた一時ファイル名
サイズ: アップロードファイルのサイズ
エラー: アップロードされたファイルのエラー番号
move_uploaded_file(
例:
move_uploaded_file(
また:
copy(
ファイルアップロード設定: php.ini
サーバー側の構成:
file_uploads = オン、HTTP アップロードをサポートします
Upload_tmp_dir=、一時ファイルが保存されるディレクトリ
Upload_max_filesize = 2M、アップロードできるファイルの最大サイズ
max_file_uploads = 20、一度にアップロードできるファイルの最大数
post_max_size = 8M、POST メソッドによって送信されるデータの最大値
max_execution_time = -1、不適切に作成されたプログラムがサーバー リソースを占有することを防ぐために、パーサーによってスクリプトが終了されるまでに許可される最大実行時間を秒単位で設定します
max_input_time = 60、スクリプトが入力データを解析するために許容される最大時間 (秒単位)
max_input_nesting_level = 64、入力変数のネストの深さを設定します
max_input_vars = 1000、受け入れられる入力変数の数 (制限は
注: クライアント側でコードが制限されている場合は、ブラウザでコードを変更することで制限を無効にすることができます。したがって、制限はすべてサーバー側で行う必要があります。
サーバー側の制限:
アップロードされるファイルの種類を制限します (in_array(suffix, array)、ファイルのサフィックスが指定された種類の配列内にあるかどうかを判断します)
実際の画像タイプかどうかを確認します (getimagesize)
HTTP POST メソッドによってアップロードされたかどうかを検出します (is_uploaded_file、true を返す場合は、PHP post メソッドを通じてアップロードされたことを意味します)
一意の文字列を生成します:
').addClass('事前番号付け').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i