ブログ   うい・らぶ・だいびんぐ   Cube 別館   flag_uk 英語サイト   ポータル
twitter Twitter でログイン
ホーム   最新ニュース   フォーラム   ダウンロード   写真集   リンク集   お問い合わせ RSS

Top / MAX_FILE_SIZE

MAX_FILE_SIZE

ファイルのアップロードにて、下記ようなHTMLが使用されている。

<input type="hidden" name="MAX_FILE_SIZE" value="30000">

調べてみると、ブラウザ側で処理する機能のようです。
PHP 4.2 以降では、判定もできるようです。

PHPマニュアル:POST メソッドによるアップロード

MAX_FILE_SIZEはブラウザへの勧告に過ぎません。
この最大値を 出し抜くのは簡単なことなので信頼してはいけません。
しかし、 PHP側の最大サイズの設定を欺くことはできません。 
しかしそれでもMAX_FILE_SIZEを指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、実はそれが大きすぎて転送できないということを
長時間待ったあとで知らされるのを 防げるからです。

PHPマニュアル:エラーメッセージの説明

PHP 4.2.0以降、PHPはファイル配列とともに適当なエラーコードを返します。
アップロードされたファイルは、HTMLフォームで指定された MAX_FILE_SIZE を超えています。 

ブラウザ側で処理する内容について、調べてみたのですが、はっきりしことは分かりませんでした。

PHP の知っておきたいこと
では、ファイルのサイズ=0としているようです。
私のブラウザIE6では、同時に一時ファイル名が none となります。

私のPHPはちょっと古くて、エラーコードが使えないので、独自の判定関数を作ってみました。

// check $HTTP_POST_FILES
// return status code 
//   0 : no error
//   2 : The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form. 
//   6 : $HTTP_POST_FILES is not setted.
//   7 : the name of uploaded file is not setted.
//   8 : the size of uploaded file is zero.
function check_post_files($file)
{
	global $HTTP_POST_FILES;

	if (!isset($HTTP_POST_FILES[$file])) return 6;
	if (empty($HTTP_POST_FILES[$file]['name'])) return 7;
	
	if ($HTTP_POST_FILES[$file]['size'] == 0)
	{	if     (empty($HTTP_POST_FILES[$file]['tmp_name']))     return 2;
		elseif ($HTTP_POST_FILES[$file]['tmp_name'] == 'none') return 2;
		return 8;
	}

	return 0;
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Counter: 10184, today: 1, yesterday: 0
Last-modified: Mon, 22 Mar 2010 16:01:48 JST (2623d)
スポンサー

寄付
配布しているソフトが気に入ったら、寄付をお願いします。
寄付

PageRank のページ毎の表示
http://linux.ohwada.jp/ modules/bwiki/index.php?
PageRank 0 PageRank

メインメニュー

マニュアル

ログイン