<?php /* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. * */ class FileUpload { /* * @FILE : Takes a file from a $_FILES via a $_POST and sets the UPLOAD DIR. * Tests that the submitted data is a type ARRAY * The resulting file is then uploaded to the DIR. * The returning data is a notification to the user. * * @AUTHOR : Sheldon Kemper * @EMAIL : sheldonkemper@gmail.com * @DATE : 17 January 2012 * @COPYRIGHT: COPYRIGHT 2012 Sheldon Kemper GPL V3 * * @TDO : Needs error-checking * Needs File-type checking * * Create a Multiple file Method. * Needs a test of supplied array matching $_FILES variables. * * */ const BOOLTRUE = 1; //Boolean TRUE. const BOOLFALSE = 0; //Boolean FALSE. //REMOVE const FILEUPCOMPLETE ='File uploaded SUCCESFULLY'; //REMOVE const FILEUPFAILURE ='File uploaded FAILED'; private $dirSet; //location of file uploads. private $file; //Post input of type FILE. private $errorCode; //The error code associated with this file upload. private $fileName; //The original name of the file on the client machine. private $fileType; //The mime type of the file, if the browser provided this information. An example would be "image/gif". private $fileSize; //The size, in bytes, of the uploaded file. private $fileTempName; //The temporary filename of the file in which the uploaded file was stored on the server. private $uploadFile; //Concates the $dirset with the filename. public $message; //? /* * @METHOD :PUBLIC MAGIC_METHOD __CONSTRUCT. * @DESC :Initialises the file_upload process . * @RETURN :Type STRING * */ public function __construct ( /*REMOVE $dir, $value*/ $config_array ) { $this->action_multiple_file_upload ( $config_array ) ; //REMOVE19012012 $this->set_dir ( $dir ); //REMOVE19012012 $this->set_postFile ( $value ); //REMOVE19012012 $this->action_file_move (); } /* * @METHOD :PUBLIC get_fileName. * @DESC :Gets the upload file name. * @RETURN :(string) FileName. * */ public function get_fileName () { return $this->fileName; } /* * @METHOD :PUBLIC get_fileTempName. * @DESC :Gets the upload Temp file name. * @RETURN :(string) TempFileName. * */ public function get_fileTempName () { return $this->fileType; } /* * @METHOD :PUBLIC get_errorCode. * @DESC :Gets the upload Error Code. * @RETURN :(int) Error code. * */ public function get_errorCode () { return $this->errorCode; } /* * @METHOD :PUBLIC get_fileType. * @DESC :Gets the upload File Type. * @RETURN :(string) File Type. * */ public function get_fileType () { return $this->fileType; } /* * @METHOD :PRIVATE set_dir. * @DESC :Sets the upload directory. * @RETURN : * */ private function set_dir ( $dir ) { $this->dirSet = $dir; } /* * @METHOD :PRIVATE set_postFile. * @DESC :Sets the $_FILES . * @RETURN : * */ private function set_postFile ( $value ) { if( isset( $_FILES[ $value ]) ) { $this->file = $_FILES[$value]; } } /* * @METHOD :PRIVATE action_file_move. * @DESC :Tests if a POST file was uploaded * Moves file to location. * @RETURN :CONST(string). * * */ public function action_file_move ( ) { if( $this->bool_file_upload()==1 ) { $this->uploadfile = $this->dirSet.'/'.$this->fileName; if( move_uploaded_file( $this->fileTempName,$this->uploadfile )) { return self::BOOLTRUE; }else { return self::BOOLFALSE; }//End IF move_uploaded_file. } else { return self::BOOLFALSE; }//End IF bool_file_upload. }//END:METHOD action_file_move. /* @METHOD :Private action_multiple_file_upload * @DESC :Allows for multiple file upload to more than one DIR * * @RETURN : (string) filename * * */ private function action_multiple_file_upload ( $config_array ) { $this->message = array(); foreach ( $config_array as $dir=>$value ) { $this->set_dir ( $dir ); $this->set_postFile ( $value ); if ( $this ->action_file_move ( ) ) { $this->message[] =$this -> get_fileName(); }//End IF. }//End FOREACH $config_array. return $this->message; }//END:METHOD action_multiple_file_upload. /* * @METHOD :PRIVATE array_confirm. * @DESC :Tests if passed argument is type ARRAY. * @RETURN :BOOL. * */ private function array_confirm ( $file ) { if ( is_array( $file ) ) { return self::BOOLTRUE; } else { return self::BOOLFALSE ; }//End IF is_array }//End METHOD array_confirm /* * @METHOD :PRIVATE get_loop_array * @DESC :Tests the array for $_FILES value * adding to the variables index * @RETURN :Sets private variables to VALUE * @Param( Array,$array ) :Global $_FILE * */ private function get_array_post_loop ( $array ) { if( $this->array_confirm ( $array ) ) { foreach ( $array as $key=>$value ) { switch( $key ) { case 'name': $this->fileName = $value; break; case 'error': $this->errorCode = $value; break; case 'type': $this->fileType = $value; break; case 'size': $this->fileSize = $value; break; case 'tmp_name': $this->fileTempName = $value; break; default : throw New Exception('Not a File'); } //End SWITCH } //End FOREACH }//End IF array_confirm } //END METHOD loop_array /* * @METHOD :PRIVATE bool_file_upload * @DESC :Gets the array of values, * tests if it is uploaded via the POST * @RETURN :BOOL. * * */ private function bool_file_upload (){ $this->get_array_post_loop ( $this->file ); if(is_uploaded_file( $this->fileTempName )) { return self::BOOLTRUE; } else { return self::BOOLFALSE; }//End IF }//END: METHOD bool_file_upload /***************END CLASS*********************/ }
以上就是一个简单的php上传类的内容,更多相关内容请关注PHP中文网(www.php.cn)!
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
アサシンのクリードシャドウズ:シーシェルリドルソリューション
4週間前ByDDD
Atomfallのクレーンコントロールキーカードを見つける場所
4週間前ByDDD
<🎜>:Dead Rails-すべての課題を完了する方法
1 か月前ByDDD
Atomfall Guide:アイテムの場所、クエストガイド、およびヒント
1 か月前ByDDD

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック
Gmailメールのログイン入り口はどこですか?
7714
15


Java チュートリアル
1640
14


CakePHP チュートリアル
1395
52


Laravel チュートリアル
1289
25


PHP チュートリアル
1232
29

