ホームページ  >  記事  >  バックエンド開発  >  php_PHPチュートリアルのファイルアップロード機能を強化

php_PHPチュートリアルのファイルアップロード機能を強化

WBOY
WBOYオリジナル
2016-07-21 15:35:56721ブラウズ

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

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

function Upload($file,$path,$type){
$state = array(); ] = " true";
$alltype = "" // アップロードできるすべてのタイプは "/" で接続されます
$path = trim($path);
// $path の末尾に "/" を追加します
if(strlen (strrchr($path,'/')) <= 1){
$path .= "/";
//型の先頭に「.」を追加します
//すべての型を合成します文字列に変換するには、「/」を使用します。 connect
foreach($type as $key=>$typeone){
$type[$key] = $typeone =トリム( $typeone);
if(strlen(strchr($typeone,".")) != strlen($typeone)){
$type[$key] = ".".$typeone;}
$alltype . = $ typeone.'/';
}
$alltype = substr($alltype,0,strlen($alltype)-1); //最後の「/」を削除します
if($file['name'] )) {
$state['error'] = "タイプ {$alltype} のファイルはアップロードされませんでした!";
$state['errorid'] = 8; else {
if (! $file[' エラー']) {
$state['名前'] = $file['名前']
$state['タイプ'] = strrchr($state['名前'],'.');
if(in_array ($state['type'],$type)){
$time = date("U");
$state['upname'] = $time.rand(1000,9999).$state ['type' ]; //ファイル名
if(copy($file['tmp_name'],$path.$state['upname'])){
$state['time'] = date("U" ); // アップロード時間
$state['error'] = false;
return $state; else {
switch($file('error')){
case 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 アップロードに失敗しました。アップロードするファイルが見つかりませんでした。
6 ファイルの書き込みに失敗しました。一時フォルダーです!
8 ファイルはアップロードされませんでした! //フォーム内のファイル オブジェクトが空です!
10 アップロードに失敗しました。場所が間違っています。



http://www.bkjia.com/PHPjc/322230.html

www.bkjia.com

tru​​e

技術記事形式のファイル オブジェクト。たとえば、$_FILES['doc']、$path は保存するパス、$type はアップロードを制限するタイプです (これは、たとえば、doc、docx、および形式のアップロードを制限するための配列です) 、次にこのパラメータ... .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。