PHP によるファイルのアップロードについて
ini_get(str) 関数を使用する
たとえば、アップロードされたファイルの最大サイズを取得します。 echo ini_get("upload_max_filesize");
PHP のデフォルトのアップロード制限は最大 2M です。この設定を超えるファイルをアップロードする場合は、PHP や Apache などのいくつかのパラメータを調整する必要があります。以下では、PHP ファイルのアップロードに関連するいくつかのパラメータを簡単に紹介します。 :
HTTP 経由でのファイルのアップロードを許可するかどうか、デフォルトは ON です
upload_tmp_dir は、PHP によってアップロードされたファイルが配置される一時ディレクトリを記述するために使用されます。指定されていない場合は、サーバーが一時ファイルを閉じていないこと、およびそのフォルダーへの書き込み権限があることを確認する必要があります。 PHP はシステムのデフォルト値を使用します
アップロードできる最大ファイル サイズ、デフォルトは 2M
POST メソッドを使用してフォーム送信中に PHP が受信できるデータの最大量を制御します。 PHP ファイルのアップロード機能を使用したい場合は、この値を Upload_max_filesize より大きくする必要があります…????????? 詳細…
?
POST、GET、および PUT メソッドを介してデータを受信する時間を秒単位で制限します。アプリケーションが低速リンクで実行されている場合は、データの受信に必要な追加時間に対応するためにこの値を増やす必要があります
スクリプトの実行によってシステムで使用可能な大量のメモリが使用されるのを避けるために、PHP ではメモリ使用量の制限を定義できます。単一のスクリプトが使用できる最大メモリ容量を指定するには、memory_limit 変数を使用します。memory_limit 変数の値は、post_max_size
の値より適切に大きくする必要があります。max_execution_time は、PHP がスクリプトを強制終了するまで待機する時間を設定します。この時間は秒単位で計算されます。これは、スクリプトが無限ループに入ると変化します。 量はとても助かります。ただし、完了までに時間がかかる正当なアクティビティ (大きなファイルのアップロードなど) がある場合、この機能により操作が失敗する可能性もあります。このような場合、この変数の値を次のように増やすことを検討する必要があります。 いくつかの重要なプロセスの実行中に PHP がスクリプトを閉じないようにする
PHP のファイル関数を使用してアップロード
このコードは 2 つのファイルに分かれており、1 つは Upload.html で、もう 1 つは Upload.php
<form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="max_file_size" value="100000"> <input name="userfile" type="file"> <input type="submit" value="上传文件"> </form>
その中で、
$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);//设定上传的文件的属性
<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>
上記の例の $_FILES 配列の内容は次のとおりです。ファイルアップロードフィールドの名前は userfile であると仮定します (名前は任意で構いません)