無限の数のフォームにより長い略語が生成される_PHP チュートリアル

WBOY
リリース: 2016-07-20 11:05:46
オリジナル
820 人が閲覧しました

まずメソッド呼び出しの例を見てみましょう:

Rendering:

まずクラスをアップロードしてください?/*
TITLE : CLASS Upload
FILE : class.upload .php
説明: アップロード ユーティリティを提供するため、
作者: Peng Zhang zpadmin()gmail.com http://blog.neten.de
根拠: whxbb whxbb()21cn.com
執筆: 2005 11 月 20 日
変更: 2006 MAR 01
psdshow (psdshow(at)yahoo.com.cn) によって変更 2007-11-30
ライセンス : GPL
リビジョン : V1.0.2
*/
class Upload{
var $saveName;// 名前を保存
var $savePath; // 保存パス
var $fileFormat = array('gif','jpg','doc','application/octet-stream') // ファイル形式と MIME の制限
var $overwrite = 0; // 上書きモード
var $maxSize = 0; // ファイルの最大バイト数
var $thumb = 0; // サムネイルを生成するかどうか
var $thumbWidth = 130; var $thumbHeight = 130; // サムネイルの高さ
var $thumbPrefix = "_thumb_"; // サムネイルのプレフィックス
var $returnArray= array(); // すべてのファイルの情報を返します
$returninfo= array();// 各ファイルの情報を返す


// コンストラクター

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

// @param $fileFormat ファイル形式制限配列
// @param $maxSize ファイル最大size
// @param $overwritet 上書き可否 1、上書き許可 0、上書き禁止

function Upload($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;
}

// Upload
// @param $fileInput Web ページ Form ( 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) ['名前']); $i++){
$ar['tmp_name'] = $fileArr['tmp_name'][$i];
$ar['name'] = $fileArr['name'][$ i];
$ar[ 'type'] = $fileArr['type'][$i];
$ar['size'] = $fileArr['size'][$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;
}else{
$this->returninfo['error'] = $this->errmsg();
$ this->returnArray[] = $this-> ;returninfo;
}
}
return $this->errno ? false : true;
}else{//単一のファイルをアップロードします
$this->getExt( $ filearr ['name']); ->returnArray[] = $this->returninfo;
}else{
$this->returninfo['error'] = $this->errmsg();
$this->returnArray[] = $ This-& gt; Returninfo;}}
Return $ This-& gt; False;}
$ This-& GT; Return false;
}

//単一ファイルアップロード
// @param $fileArray ファイル情報 array
function copyfile($fileArray){
$this->returninfo = array();
// 情報を返します
$this->returninfo[' name'] = $fileArray['name'];
$this->returninfo['saveName'] = $this->saveName;
$this->returninfo['size'] =number_format( ($fileArray ['size'])/1024, 0, '.', ' ');//KB 単位
$this->returninfo['type'] = $fileArray['type'];
// ファイル形式をチェック
if (!$this->validateFormat()){
$this->errno = 11;
return false;
}
// ディレクトリが書き込み可能かどうかを確認します
if(!@is_writable($this- > ;savePath)){
$this->errno = 12;
return false;
}
// 上書きが許可されていない場合は、ファイルが既に存在するかどうかを確認します
//if($this->overwrite == 0 && @file_exists($this->savePath.$fileArray['name'])){
// $this->errno = 13;
// return false;
//}
//サイズ制限、ファイルが制限を超えているかどうかを確認します
if ($this->maxSize != 0 ){
if ($fileArray["size"] > $this->maxSize){
$this-> errno = 14;
return false;
}
}
// ファイルアップロード
if(!@move_uploaded_file($fileArray["tmp_name"], $this->savePath.$this->saveName)){
$ this->errno = $fileArray["error"];
return false;
}elseif( $this->thumb ){// サムネイルを作成します
$CreateFunction = "imagecreatefrom".($this->ext == 'jpg' ? 'jpeg' : $this->ext);
$SaveFunction = "image".($this->ext == 'jpg' ? 'jpeg' : $this->ext) ;
if (strto lower ($CreateFunction) == "imagecreatefromgif"
&& !function_exists("imagecreatefromgif")) {
$this->errno = 16;
return false;
} elseif (strto lower($CreateFunction) == "imagecreatefromjpeg"
&& !function_exists("imagecreatefromjpeg")) {
$this->errno = 17;
return false;
} elseif (!function_exists($CreateFunction)) {
$this->errno = 18;
return false;
}

$Original = @$CreateFunction($this->savePath.$this->saveName);
if (!$Original) {$this->errno = 19; }
$originalHeight = ImageSY($Original);
$originalWidth = ImageSX($Original);
$this->returninfo['originalHeight'] = $originalHeight;
$this->returninfo['originalWidth'] = $originalWidth;
/ *
if (($originalHeight < $this->thumbHeight
&& $originalWidth < $this->thumbWidth)) {
// サムネイルが予想より小さい場合は、Copy
move_uploaded_file ($this->savePath.$this->saveName,
$this->savePath.$this->thumbPrefix.$this->saveName);
} else {
if( $originalWidth > $ this->thumbWidth ){// 幅 > 幅を設定
$this->thumbWidth ->親指の高さ){// 高さを設定
( $originalHeight >
     if($thumbWidth > $this->thumbWidth){// 宽 > 設定宽度
$thumbHeight = $this->thumbWidth * ( $thumbHeight / $thumbWidth );
$thumbWidth = $this->thumbWidth ;
}
*/
$radio=max (($originalWidth/ $this->thumbWidth),($originalHeight/$this->thumbHeight));
$thumbWidth=(int)$originalWidth/$radio;
$thumbHeight=(int)$originalHeight/$radio;

if ($thumbWidth == 0) $thumbWidth = 1;

if ($thumbHeight == 0) $thumbHeight = 1;
$createdThumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
if ( !$createdThumb ) {$this- >エラー番号 = 20; return false;}
if ( !imagecopyresampled($createdThumb, $Original, 0, 0, 0, 0,
$thumbWidth, $thumbHeight, $originalWidth, $originalHeight) )
{$this->errno = 21; return false;}
if ( !$SaveFunction($createdThumb,
$this->savePath.$this->thumbPrefix.$this->saveName) )
{$this->errno = 22; return false;}

}
// 删除临時文件
/*
if(!@$this->del($fileArray["tmp_name"])){
return false;
}
*/
return true ;
}

// 文件格式查,MIME检测

function validateFormat(){
if(!is_array($this->fileFormat)
|| in_array(strto lower($this->ext), $this- >fileFormat)
|| in_array(strto lower($this->returninfo['type']), $this->fileFormat) )
return true;
else
return false;
}
// 获取文件扩展名前
// @param $fileName 上の原文ファイル名
function getExt($fileName){
$ext =explode(".", $fileName);
$ext = $ext[count($ext) - 1] ;
$this->ext = strto lower($ext);
}

// 設置上送信文件の最大字节制限

// @param $maxSize 文件大小(bytes) 0:表示無制限
function setMaxsize( $maxSize){
$this->maxSize = $maxSize;
}
// 設置文件格式限定
// @param $fileFormat 文件格式数组
function setFileformat($fileFormat){
if(is_array($fileFormat) ){$this->fileFormat = $fileFormat ;}
}

// 設置被盖モード

// @param overwrite 被盖モード 1:允许被盖 0:禁止被盖
function setOverwrite($overwrite){
$this- >overwrite = $overwrite;
}

// 設置保存路径
// @param $savePath 文件保存路径:以 "/" 结尾,若没有 "/",则补上
function setSavepath($savePath) {
$this->savePath = substr( str_replace("","/", $savePath) , -1) == "/"
? $savePath : $savePath."/";
}

// 設置缩略図

// @param $thumb = 1 生成缩略図 $thumbWidth,$thumbHeight は缩略図の宽と高
function setThumb($thumb, $thumbWidth = 0,$thumbHeight = 0){
$this->thumb = $thumb;
if($thumbWidth) $this->thumbWidth = $thumbWidth;
if($thumbHeight) $this->thumbHeight = $thumbHeight;
}

// 設置文件保存名

// @param $saveName 保存名,如果是空,则系统自動生成一个随机的文件名
function setSavename($saveName){
if ($saveName == ''){ // 如果未設置文件名,则一个随机文件名
$name = date('YmdHis')."_".rand(100,999).'.'.$this->ext ;
// 判断文件が存在するかどうか、不允许重复文件
if(file_exists($this->savePath . $name)){
$name = setSavename($saveName);
}
} else {
$name = $saveName;
}
$this->saveName = $name;
}

// 删除文件
// @param $fileName 希望の删除対象文件名
function del($fileName){
if(!@unlink($fileName)){
$this->errno = 15;
return false ;
}
return true;
}

// 上に送信された情報
function getInfo(){
return $this->returnArray;
}

// 错误情報
function を取得します$ UploadClassError = array(
0 =>'エラーはありません。ファイルは正常にアップロードされました。',
1 =>'アップロードされたファイルは、php.ini の Upload_max_filesize ディレクティブを超えています。',
2 =>'アップロードされたファイルは HTML フォームで指定された MAX_FILE_SIZE を超えています。',
3 =>'アップロードされたファイルは部分的にのみアップロードされました。',
4 =>'ファイルはアップロードされませんでした。',
6 =>'一時フォルダーがありません。PHP 4.3.10 および PHP 5.0.3 で導入されました。',
7 =>'PHP 5.1.0 で導入されました。',
10 =>'入力名は次のとおりです。利用できません!',
11 =>'アップロードされたファイルは許可されていません!',
12 =>'ディレクトリに書き込みできません!',
13 =>'ファイルはすでに存在します!',
14 =>'ファイルは次のとおりです大きすぎます!',
15 =>'ファイルの削除に失敗しました!',
16 =>'お使いの PHP のバージョンには GIF サムネイルがサポートされていないようです。',
17 =>'お使いの PHP のバージョンには、GIF サムネイルがサポートされていないようです。 JPEG サムネイル サポートがあるようです。',
18 =>'お使いの PHP のバージョンでは、画像のサムネイル サポートがないようです。',
19 =>'ソース画像をコピーしようとしたときにエラーが発生しました。
お使いの php ('.phpversion().') のバージョンでは、このイメージ タイプがサポートされていない可能性があります。',
20 =>'新しいイメージを作成しようとしたときにエラーが発生しました。',
21 =>'ソース画像をサムネイル画像にコピー中にエラーが発生しました。',
22 =>'サムネイル画像をファイルシステムに保存中にエラーが発生しました。
このフォルダーに対する読み取りアクセスと書き込みアクセスの両方が PHP に設定されていることを確認していますか?',
);
if ($this->errno == 0)
return false;
else
return $uploadClassError[$this ->errno];
}
}
?>

下面看看是怎么调用的.:

//如果收到表单传来的パラメータ,上传処理,否か表示表单
if(isset($_FILES['uploadinput'])){
//建目录関数,その中のパラメータ$directoryName最後后没有"/",
//要是有的话,以'/'打散数组的候、最終后会出现一空值
function makeDirectory($directoryName) {
$directoryName = str_replace("","/",$directoryName);
$dirNames =explode('/', $directoryName);
$total = count($dirNames) ;
$temp = '';
for($i=0; $i<$total; $i++) {
$temp .= $dirNames[$i].'/' ;
if (!is_dir($temp)) {
$oldmask = umask(0);
if (!mkdir($temp, 0777)) exit(" 建立目录 $temp");
umask($oldmask);
}
}
return true;
}

if($_FILES['uploadinput']['name'] <> ""){
//アップロード ファイル class が含まれます
require_once ('class.upload.php');
//ファイルのアップロードを設定しますdirectory
$savePath = "upload";
//ディレクトリを作成します
makeDirectory($savePath);
//許可されるファイルの種類
$fileFormat = array('gif','jpg','jpge','png');
//ファイル サイズ制限、単位: バイト、1KB = 1000 バイト
//0 は制限なしを意味しますが、php.ini の Upload_max_filesize 設定の影響を受けます
$maxSize = 0;
//元のファイルを上書きしますか? 0 許可されません 1 許可されます
$overwrite = 0;
//アップロード クラスを初期化します
$f = new Upload($savePath, $fileFormat, $maxSize, $overwrite);
//サムネイルを生成したい場合は、メンバー関数 $f->setThumb();
//パラメータリスト: setThumb($thumb, $thumbWidth = 0,$thumbHeight = 0)
//$thumb=1 は、呼び出されない場合、サムネイルを生成することを意味します。値は 0
//$thumbWidth サムネイルの幅、単位はピクセル (px)、空白のままにしてデフォルト値の 130 を使用します
//$thumbHeight サムネイルの高さ、単位はピクセル (px)、空白のままにしてデフォルト値を使用しますvalue 130
$f ->setThumb(1);

//パラメータのuploadinputは、フォーム内のファイルをアップロードするための入力ボックスの名前です
//次の0はファイル名を変更しないことを意味します。 1 の場合、システムはランダムなファイル名を生成します
if (!$f->run('uploadinput',1)){
//$f->errmsg( を通じて最後のエラー メッセージのみを取得できます) ),
//詳細情報は $f-> ;getInfo() から取得可能。
echo $f->errmsg()."
n";
}
//アップロード結果は配列 returnArray に保存されます。
echo "

";<br /> print_r($f->getInfo());<br /> echo "
";
}
}else{
?>

このファイルを送信します:









}
//既存の画像ファイルをアップロードします
/ /A 通常画像ファイルとアップロードが許可されていないファイルの場合、
//出力結果は以下の通りです
/*
アップロードされたファイルはUnallowableです!

Array
(
[0] => Array
=>boy.jpg
'''''''''''''''''' '' '' '' '' '' '' '' '' 'アウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトアウトズトゥオブ 』

[1] =&gt&gt;

[タイプ] => audio/x-ms -wma
=>



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

www.bkjia.com

tru​​e

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

技術記事


まずメソッド呼び出しの例を見てみましょう: レンダリング: コードを見てみましょう。まずクラスをアップロードします??php /* TITLE: CLASS Upload FILE: class.upload.php DESCRIPTION: アップロード ユーティリティを提供するには、AUTHOR。 ..

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート