[php]
/*
単一ファイルのアップロード
機能
ファイルをアップロードする
許可されるサフィックスを構成する
許可されるサイズを設定する
ファイルのサフィックスを取得する
ファイルのサフィックスを決定する
エラーを報告する
*/
クラスアップツール{
protected $allowExt = 'jpg,jpeg,gif,bmp,png';
protected $maxSize = 1 //1M、単位: M
protected $file = null //アップロードされたファイル情報を保存する準備をします
protected $errno = 0 //エラーコード
protected $error = array(
0=>「エラーなし」、
1=>'アップロードされたファイルのサイズがシステム制限を超えています',
2=>「アップロードされたファイルのサイズが Web フォームの制限を超えています」,
3=>'ファイルの一部のみがアップロードされました',
4=>「ファイルはアップロードされていません」,
6=>「一時フォルダーが見つかりません」,
7=>'ファイルの書き込みに失敗しました',
8=>'許可されていないファイルのサフィックス',
9=>'ファイル サイズがクラスの許容範囲を超えています',
10=>'ディレクトリの作成に失敗しました',
11=>「ファイルの移動に失敗しました」
);
/*
アップロード
*/
パブリック関数 up($key) {
if (!isset($_FILES[$key])) {
false を返します。
$f = $_FILES[$key];
//アップロードが成功したかどうかを確認します
if ($f['error']) {
$this->errno = $f['error'];
false を返します。
//サフィックスを取得
$ext = $this->getExt($f['name']);
//サフィックスをチェックする
if (!$this->isAllowExt($ext)) {
$this->errno = 8;
false を返します。
//サイズを確認してください
if (!$this->isAllowSize($f['size'])) {
$this->errno = 9;
false を返します。
使用
$dir = $this->mk_dir();
if ($dir == false) {
$this->errno = 10;
return fasle;
out Out Out Out ’s’ sの使用
$newname = $this->randName() .$ext;
//$dir = $dir . '/' .$newname;
if(!move_uploaded_file($f['tmp_name'], $dir . '/' .$newname)) {
$this->errno = 11;
false を返します。
return true;//str_replace(ROOT, '', $dir);
}
パブリック関数 getErr(){
$ this-> エラー [$ this-& gt;] を返します。
}
/*
Parm 文字列 $exts で許可されるサフィックス
許可されるサフィックスとファイルサイズを自動的に追加します
*/
パブリック関数 setExt($exts) {
$this->allowExt = $exts;
}
パブリック関数 setSize($num) {
$this->maxSize = $num;
}
/*
文字列 $file
文字列 $ext サフィックスを返す
*/
保護された関数 getExt($file) {
$tmp =explode('.', $file);
return end($tmp);
}
/*
文字列 $ext ファイル接尾辞
ブール値を返す
大文字小文字の問題を防ぐ
*/
保護された関数 isAllowExt($ext) {
I Return in_array (StrTo lower ($ EXT)、Explode (','、Strtology ($ This-& GT; AllWext));
)
}
/*
ファイルサイズを確認する
*/
保護された関数 isAllowSize($size) {
️ return $size maxSize *1024*1024;
}
//日付ごとにディレクトリを作成する方法
保護された関数 mk_dir() {
$dir = 'images/' . date('Ym/d');
if(is_dir($dir) || mkdir($dir,0777,true)) {
return $dir;
false を返します。
}
/*
ランダムなファイル名を生成する
*/
保護された関数 randName($length = 6) {
$str = 'abcdefghijkmnpqrstuvwxyz23456789';
out Out Out Out Outを使用します
}
}
フォームフォーム
[html]