ホームページ  >  記事  >  バックエンド開発  >  PHP100 のエッセンス: PHP アップロード クラスがサムネイルをサポートする_PHP チュートリアル

PHP100 のエッセンス: PHP アップロード クラスがサムネイルをサポートする_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:38:40760ブラウズ

例:

1. ファイルupfile.phpを作成します、コードは次のとおりです

//フォームからパラメータを受け取った場合はアップロードし、そうでない場合はフォームが表示されます

if(isset($_FILES[uploadinput])){

//パラメータ$directoryNameの末尾に「/」を持たないディレクトリ作成関数、

//ある場合、/を配列に分割すると最後にnull値が出現します

関数 makeDirectory($directoryName) {

$ディレクトリ名 = str_replace("","/",$ディレクトリ名);

$dirNames =explode(/, $directoryName);

$total = count($dirNames) ;

$temp = ;

for($i=0; $i

$temp .= $dirNames[$i]./;

if (!is_dir($temp)) {

$oldmask = umask(0);

if (!mkdir($temp, 0777)) exit("ディレクトリ $temp を作成できません");

umask($oldmask);

}

}

true を返す;

}

if($_FILES[uploadinput][name] <> ""){

//アップロードファイルクラスが含まれます

require_once (class_upload.php);

//ファイルアップロードディレクトリを設定します

$savePath = "アップロード";

//ディレクトリを作成する

makeDirectory($savePath);

//許可されるファイルタイプ

$fileFormat = array(gif,jpg,jpge,png);

//ファイルサイズ制限、単位:バイト、1KB = 1000バイト //2cto.com

//0は制限なしを意味しますが、php.iniのupload_max_filesize設定の影響を受けます

$maxSize = 0;

//元のファイルを上書きしますか? 0 許可されません 1 許可されます

$overwrite = 0;

//アップロードクラスを初期化する

$f = new clsUpload( $savePath, $fileFormat, $maxSize, $overwrite);

//サムネイルを生成したい場合は、メンバー関数 $f->setThumb(); を呼び出します。

//パラメータリスト:setThumb($thumb, $thumbWidth = 0,$thumbHeight = 0)

//$thumb=1 はサムネイルを生成することを意味します。呼び出されない場合、その値は 0 です。

//$thumbWidth サムネイルの幅、単位はピクセル(px)、空白のままにしてデフォルト値の 130 を使用します

//$thumbHeight サムネイルの高さ、単位はピクセル(px)、空白のままの場合はデフォルト値の 130 を使用します

$f->setThumb(1);

//パラメータのuploadinputは、フォームにファイルをアップロードするための入力ボックスの名前です

//次の0はファイル名を変更しないことを意味し、1の場合はシステムがランダムなファイル名を生成します

if (!$f->run(uploadinput,0)){

//最後のエラーメッセージは $f->errmsg() を通じてのみ取得できます,

//詳細情報は$f->getInfo()で取得可能。

echo $f->errmsg()."

";


}

//アップロード結果は配列returnArrayに格納されます。 //2cto.com

エコー「

」 リーリー

」;

}

}その他{

?>

このファイルを送信してください:






2. class_upload.php ファイルを作成します。コードは次のとおりです

クラス clsUpload{

var $saveName;//名前を保存します

var $savePath;//パスを保存します

var $fileFormat = array(gif,jpg,doc,application/octet-stream);//ファイル形式と MIME の制限

var $overwrite = 0 // 上書きモード

;

var $maxSize = 0;//ファイルの最大バイト数

var $ext;//ファイル拡張子

var $thumb = 0;//サムネイルを生成するかどうか

var $thumbWidth = 130;//サムネイルの幅

var $thumbHeight = 130;//サムネイルの高さ

var $thumbPrefix = "_";//サムネイルのプレフィックス

var $errno // エラーコード

var $returnArray= array();//全ファイルの情報を返す

var $returninfo= array();//各ファイルの情報を返す

// コンストラクター

// @param $savePath ファイル保存パス

// @param $fileFormat ファイル形式制限配列

// @param $maxSize 最大ファイルサイズ

// @param $overwritet 上書きするかどうか 1 上書き許可 0 上書き禁止

function clsUpload($savePath, $fileFormat=,$maxSize = 0, $overwrite = 0) {

$this->setSavepath($savePath);

$this->setFileformat($fileFormat);

$this->setMaxsize($maxSize);

$this->setOverwrite($overwrite);

$this->setThumb($this->thumb, $this->thumbWidth,$this->thumbHeight);

$this->errno = 0;

}

// アップロード

// @param $fileInput Webページの入力の名前 Form

// @param $changeName ファイル名を変更するかどうか

function run($fileInput,$changeName = 1){

if(isset($_FILES[$fileInput])){

$fileArr = $_FILES[$fileInput];

if(is_array($fileArr[name])){//上传同文件ドメイン名複数の文件

for($i = 0; $i < count($fileArr[name]); $i++){

$ar[tmp_name] = $fileArr[tmp_name][$i];

$ar[名前] = $fileArr[名前][$i];

$ar[type] = $fileArr[type][$i];

$ar[サイズ] = $fileArr[サイズ][$i];

$ar[error] = $fileArr[error][$i];

$this->getExt($ar[name]);//扩展名取得,赋给$this->ext,次循環环会更新

$this->setSavename($changeName == 1 ? : $ar[name]);//保存保存文書名

if($this->copyfile($ar)){

$this->returnArray[] = $this->returninfo;

}その他{

$this->returninfo[error] = $this->errmsg();

$this->returnArray[] = $this->returninfo;

}

}

return $this->errno ?真偽;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486458.html技術記事例: 1、创建文件upfile.php、代码如下 //如果收到表处来的パラメータ,上传処理,否否瘾表示表单 if(isset($_FILES[uploadinput])){ //建目录関数数.. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。