phpチュートリアルのファイルアップロードコード(ファイルのバッチアップロードをサポート)
このファイル アップロード クラスは、デフォルトで単一のファイルをアップロードします。バッチ ファイルを簡単にアップロードするには、$inputname ='files' をフォーム名に変更するだけです。 $savename = ''保存ファイル名、$alowexts = array() はアップロードできるタイプを設定、$savepath = ''保存パス。
*/
クラスのアップロード
{
パブリック $savepath;
パブリック $files;
プライベート $error;関数 __construct($inputname = 'files', $savepath = '', $savename = '', $alowexts = array(),$maxsize = 1024000)
で終わります
{
if(!$alowexts)$alowexts=explode('|',upload_ftype);
$file_array=array();
$savepath=str_replace('','/',$savepath);
$savename=preg_replace('/[^a-z0-9_]+/i','',$savename);
$this->savepath=substr($savepath,-1)=='/'?$savepath:$savepath.'/' //パス名は /if(!make_dir($this->savepath))
if(move_uploaded_file($tmp_name,$this->savepath.$savename) || @copy($tmp_name,$this->savepath.$savename))
{
$this->error=8;
$this->error();
}
//exit($this->savepath);
if(!is_writeable($this->savepath))
{
$this->error=9;
$this->error();
}
if(sizeof($_files[$inputname]['error'])>10)
{
$this->error=13;
$this->error();
}
$max=sizeof($_files[$inputname]['error'])-1;
//exit($this->savepath.$savename);
foreach($_files[$inputname]['error'] as $key => $error)
{
If($error==upload_err_ok) //バッチアップロード
{
$savename=$savename?$savename:date('ymdims').mt_rand(10000,99999); $fileext=strto lower(get_fileext($_files[$inputname]['name'][$key]));
$savename=$savename.'.'.$fileext;
$tmp_name=$_files[$inputname]['tmp_name'][$key];
$filesize=$_files[$inputname]['size'][$key];
If(!in_array($fileext,$alowexts))
{
$this->error=10;
$this->error();
}
If($filesize>$maxsize)
{
$this->error=11;
$this->error();
}
If(!$this->アップロードされたファイル($tmp_name))
{
$this->error=12;
$this->error();
}
{
function isuploadedfile($file) //システムに付属するバックスラッシュを削除します
//exit($this->savepath.$savename);
@chmod($savename, 0644);
@unlink($tmp_name);
$file_array[]=$this->保存パス.$保存名
}
}
それ以外
{
$this->error=$error;
$this->error();
}
設定を解除($savename);
}
$this->files=$file_array;
true を返します;
}
{
return (is_uploaded_file($file) || is_uploaded_file(str_replace('','',$file))); }関数エラー()
{
$upload_error=array(0 => 'ファイルは正常にアップロードされました!',
1 => 'アップロードされたファイルはphp.iniのupload_max_filesizeオプションの制限を超えています!',
2 => 'アップロードされたファイルのサイズが HTML フォームの max_file_size オプションで指定された値を超えています!',
3 => 'ファイルの一部だけがアップロードされました!',
4 => 「ファイルがアップロードされていません!」、
5 => 「不明なエラー!」、
6 => '一時フォルダーが見つかりません。 !'、
7 => '一時フォルダーへのファイルの書き込みに失敗しました!',
「添付ディレクトリの作成に失敗しました!」、
9 => '添付ディレクトリには書き込み権限がありません!',
10 => 'この種類のファイルはアップロードできません!',
11 => 「ファイルは管理者の制限を超えています!」,
12 => 「違法なファイルのアップロード!」、
13 => '同時にアップロードできるファイルは 10 個までです!'
);
showmsg($upload_error[$this->error]);
}}
//使い方
新しいアップロード();
。