ホームページ >バックエンド開発 >PHPチュートリアル >PHP100 のエッセンス: PHP アップロード クラスがサムネイルをサポートする_PHP チュートリアル
例:
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 ?真偽;