<身体> <?PHP / * * *検証エラー *エラーがある場合は、はい、それはnullを返した場合、それは、エラーを返します * / 機能チェック($ファイル){ // 間違っていることを確認:1 のIF($ファイルを [ 'エラー']!= 0 ){ スイッチ($ファイル [ 'エラーは' ]){ ケース 1: リターン 'php.iniファイルサイズが許可された最大を超え、最大値は次のとおりです。'。は、ini_get( 'upload_max_filesizeでは' ) ; ケース 2: リターン「ファイルサイズが最大許容フォーム超え」; ケース 3: リターン「アップロードするファイルの一部のみ」; 事例 4: リターン「いいえファイルのアップロード」; ケース 6: リターン「一時ファイルを見つけることができません」; ケース 7: リターン「ファイルの書き込みに失敗しました」; デフォルト: リターン「不明なエラー」; } } // 2.フォーム検証
リソースFINFO作成://ステップ1を $情報 = ; finfo_open(FILEINFO_MIME_TYPE)
リソースファイルFINFOとの比較://ステップ2 $ MIME = finfo_file($情報、$ファイル [ 'tmp_name'を]);
合法性を比較する//第3工程と、 $インクルードを許可 = 配列( '画像/ JPEG'、 '画像/ PNG'、 '画像/ GIF'); // 許可のカテゴリー IF(!in_array($ MIME、$許可)){ リターン 'のみアップロード' 破、 ''($ザ許可) '形式' ; } // 3のサイズを確認 $サイズ = 123456789を、 IF($ファイル [ 'サイズ']> $サイズ) { リターン「ファイルサイズは超えることはできません」。をnumber_format($サイズ /1024,1).'K」を。 } //4. HTTPアップロードされていることを確認していない のIF(!Is_uploaded_file($ファイル [ 'tmp_name' ])) のリターンが 'HTTPのPOSTファイルアップロード<BR>ではありません' ; リターン ヌルを ; // エラー } // フォームの送信 IF(!空($ _POST )){ // エラー時にエラーがアップロードが表示される のIF($エラー =チェック($ _FILES [ '顔' ])){ エコー $エラーを; } 他に{ // 保存するためにファイルをアップロード、ファイルのアップロードフォルダの日に $のフォルダ名 = DATE( 'Ymのの-D'); // フォルダ名 $のフォルダパス = "./アップロード/ { $フォルダ名 }"; // フォルダパス IF(!Is_dir($フォルダパス)) MKDIR($フォルダパス); $ファイル名 = uniqidの( ''、trueに。)strrchr($ _FILES [ '顔'] [ '名前']、 ''); // ファイル名 $ファイルパス = " $フォルダパス / $ファイル名 "; // ファイルパス IF(move_uploaded_file($ _FILES[ '顔'] [ 'tmp_name']、$ファイルパス)) エコー "上传成功、路径是:{ $フォルダ名 } / { $ファイル名 }" 。 他 エコー '上传失败<BR>' ; } } ?> <フォームメソッド= "ポスト"アクション= ""のenctype = 'マルチパート/フォームデータ'> の<input type = "ファイル"名= "顔"> <入力タイプ= ""名前= "submitボタン"値= "上传"> </ FORM> </ BODY>
業績
予防と治療は、php.iniのファイル迷彩fileinfo.dll拡張、fileinfo拡張モジュール後に開く機能を開く必要があり、あなたは* finfo_を使用することができます。