ホームページ >php教程 >php手册 >phpアップロードファイルの機能強化

phpアップロードファイルの機能強化

WBOY
WBOYオリジナル
2016-06-13 12:14:37946ブラウズ

形式のファイル オブジェクト。たとえば、$_FILES['doc']、$path は保存するパス、$type はアップロードを制限するタイプです (これは、たとえば、doc、docx、および形式のアップロードを制限するための配列です)の場合、このパラメータは array("doc",".docx") に入力できます。拡張子の前に「.」があるかどうかは必要ありません)。

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


function Upload($file,$path) ,$type ){
$state = array();
$state['error'] = "true";
$alltype = ""; // アップロードできるすべての型が接続されます"/"
$path = trim($path);
//$path の最後に "/" を追加します
if(strlen(strrchr($path,'/')) <= 1){
$path .= "/";
}
//型の先頭に「.」を追加します
//すべての型を文字列に合成し、それらを「/」で結合します;span id= "more-78">
foreach($type as $key=>$typeone){
$type[$key] = $typeone = trim($typeone) );
if(strlen(strchr($typeone,".")) != strlen($typeone)){
$type[$key] = ".".$typeone;}
$ alltype .= $ typeone.'/';
}
$alltype = substr($alltype,0,strlen($alltype)-1); //最後の "/" を削除します
if(empty) ($file[ 'name'])){
$state['error'] = "{$alltype} ファイルがアップロードされていません!";
$state['errorid'] = 8; $state;
} else {
if (!$file['error']) {
$state['name'] = $file['name']; type'] = strrchr($state['name'],'.');
if(in_array($state['type'],$type)){
$time = date("U" );
$state['upname'] = $time.rand(1000,9999).$state['type']; // ファイル名
if($file['tmp_name'], $path.$state['upname'])){
$state['time'] = date("U"); //アップロード時間
$state['error'] = false; >return $state;
} else {
switch($file('error')){
ケース 1: $state['error'] = $state['name']."アップロードに失敗しました、ファイル サイズがサーバーの容量を超えています。 ";$state['errorid'] = 1;return $state;
ケース 2: $state['error'] = $state['name']。"アップロードに失敗しました。アップロードされるファイル サイズがブラウザのサイズ制限! ";$state['errorid'] = 2;return $state;
ケース 3: $state['error'] = $state['name']."アップロードに失敗しました。ファイルは部分的にしかアップロードされませんでした。 ";$state['errorid'] = 3;return $state;
ケース 4: $state['error'] = $state['name']。"アップロードに失敗しました。アップロードするファイルが見つかりませんでした。 ! ";$state['errorid'] = 4;return $state;
ケース 5: $state['error'] = $state['name']."アップロードに失敗しました。サーバーの一時フォルダーが失われています。 ";$state['errorid'] = 5;return $state;
ケース 6: $state['error'] = $state['name']。アップロードに失敗し、書き込み中にエラーが発生しました。」ファイルを一時フォルダーにコピーします。 ";$state['errorid'] = 6;return $state;
デフォルト: $state['error'] = $state['name']."アップロードに失敗しました。場所が間違っています。 ";$state['errorid'] = 10;return $state;
}
}
} else {
$state['error'] = $state['name']。"アップロードに失敗しました!アップロードするファイルの種類が一致しません! ({$alltype})";
$state['errorid'] = 10;
return $state;
}
}
}
?>


戻り値は配列です
$key value

error エラー詳細
errorid エラーID (エラー発生時のみの値)
type ファイル拡張子 (先頭に「.」が付きます)
upname アップロードされたファイル名
time アップロード時間 (Unix エポック (1970-01-01 00:00) からの秒数)

エラー タイプ
errorid error
false //アップロード成功
1 アップロードに失敗しました。ファイル サイズがサーバーの容量を超えました。
2 アップロードに失敗しました。アップロードするファイル サイズがブラウザの制限を超えました。
3 アップロードに失敗しました。部分的にのみ削除されました!
4 アップロードするファイルが見つかりませんでした。
5 アップロードに失敗し、サーバー上の一時フォルダーが失われました。 .
8 なし! このタイプのファイルをアップロードします! //フォーム内のファイル オブジェクトが空です
10 アップロードに失敗しました。場所が間違っています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。