クラシック PHP バッチ アップロード ソース コード_PHP チュートリアル

WBOY
リリース: 2016-07-13 16:55:13
オリジナル
1217 人が閲覧しました

これは、クラスへのページのアップロードを含むソースコードパッケージからダウンロードされます。方法は簡単で、以下のファイルを同じファイル名で保存するだけで、ファイルの一括アップロード機能を簡単に実装できます。

コードは次のとおりです コードをコピー

html


<頭>

無題のドキュメント
<スクリプトタイプ="text/javascript">
関数 Check(){
//アラート('dddd');
for(i=1; i if(document.getElementById('v'+i).value == ''){
Document.getElementById('v'+i).name = 'uu';
}
}
}























.php ファイルをアップロード

//print_r($_FILES['spic']);
header('Content-Type:text/html;charset=utf-8');
//if(@$_FILES['spic'])echo "ddddddddd";;
include('upFiles.css.php');
$upfile = new UploadFiles(array('filepath'=>'./upload','allowtype'=>array('php','bmp','gif','jpg','png'),' israndfile'=>true,'maxsize'=>'1000000'));

if($upfile ->uploadeFile('spic')){

$arrfile = $upfile ->getnewFile();
foreach($arrfile as $v){
echo $v,"
";
}
echo "アップロード成功!";
}その他{
$err = $upfile ->gteerror();
if(is_array($err)){
foreach($err as $v1){
echo $v1,"
";
}
}その他{
エコー $err;
}
//var_dump($err);
}
//var_dump($upfile);
?>

upFiles.class.php アップロードクラス

クラスUploadFiles{

private $maxsize = '1000000' //アップロードできるファイルの最大長
; private $allowtype = array('jpg','png','gif','jpeg');//アップロードファイルタイプを許可します
private $israndfile = true;//ファイル名がランダムかどうか
private $filepath;//アップロードパス
private $originName //アップロードされたソースファイル
private $tmpfileName; //一時ファイル名
private $newfileName //新しいファイル名
private $fileSize;//ファイルサイズ
private $fileType;//ファイルタイプ
private $errorNum = 0;//エラー番号
private $errorMessg = array();//エラーメッセージ
//メンバーを初期化します
関数 __construct($options = array()){
foreach($options as $key=>$val){
$key = strto lower($key);
//渡された配列の添字がメンバー属性と同じかどうかを確認します
//print_r(array_keys(get_class_vars(get_class($this))));
If(!in_array($key,array_keys(get_class_vars(get_class($this))))){
続けてください;
}その他{
$this->setOption($key,$val);
}
}
}
プライベート関数 setOption($key,$val){
$this->$key = $val
//エコー $this->errorNum."
"
}
// ファイルのアップロード パスを確認します
プライベート関数 checkfilePath(){
// $this->ファイルパス;
をエコーする if(空($this->ファイルパス)){
$this->setOption('errorNum',"-5");
false を返します;
}
if(!file_exists($this->ファイルパス) || !is_writable($this->ファイルパス)){
if(!@mkdir($this->ファイルパス,0755)){
$this->setOption('errorNum','-4');
false を返します;
}
}
true を返します;
}
//エラー情報を取得します
プライベート関数 getError(){
$str = "ファイル {$this->originName} のアップロード中にエラーが発生しました ---";
switch($this->errorNum){
case 4; $str .= "ファイルはアップロードされませんでした";break;
case 3; $str .= "ファイルは部分的にのみアップロードされました";break;
case 2; $str .= "ファイル形式の許容サイズを超えています";break;
case 1; $str .= "php.ini で許可されているサイズを超えています";break;
case -1; $str .= "許可され​​ていないタイプ";ブレーク;
case -2; $str .= "ファイルが大きすぎるため、「.$this->maxsize.」バイトを超えることはできません";break;
case -3; $str .= "アップロードに失敗しました";ブレーク;
case -4; $str .= "ファイルアップロードディレクトリの作成に失敗しました";break;
case -5; $str .= "アップロードパスを指定する必要があります";break;
デフォルト; $str .= "不明なエラー";
}
$str を返します。"
";
}
// ファイルタイプを確認します
プライベート関数 checkfileType(){
//エコー $this->fileType;
if(!in_array(strto lower($this->fileType),$this->allowtype)){
$this->setOption('errorNum','-1');
false を返します;
}その他{
true を返します;
}
}
//ファイルサイズをチェック
プライベート関数 checkfileSize(){
if($this->ファイルサイズ > $this->最大サイズ){
$this->setOption('errorNum','-2');
false を返します;
}その他{
true を返します;
}
}
//ランダムなファイル名を処理します
プライベート関数 prorandFile(){
$ch = $this->israndfile;
if($ch == 'true'){
true を返します;
}その他{
false を返します;
}
}
//
プライベート関数 setFiles($name="",$tmp_name="",$size="",$error=""){
//アップロードパスを確認してください
if(!$this->checkfilePath()){
//$this->errorMessg = $this->getError();
false を返します;
}
//echo $error."
";
if($error){
$this->setOption('errorNum',$error);
   false を返します;
  }
  $arrstr =explode('.',$name);
  $type = end($arrstr);
  $this->setOption('originName',$name);
  $this->setOption('fileSize',$size);
  $this->setOption('fileType',$type);
  $this->setOption('tmpfileName',$tmp_name);
  true を返します;
 }
 //检查否か文件上传
 関数 checkFile($formname){
  if(!@$_FILES[$フォーム名]){
   $this->setOption('errorNum',4);
   false を返します;
  }その他{
   true を返します;
  }
 }
 //上の文章
 関数uploadeFile($formname){
  if(!$this->checkFile($formname)){
   $this->errorMessg = $this->getError();
   false を返します;
  }
  $return = true;
  $name = @$_FILES[$formname]['name'];
  $tmp_name = @$_FILES[$formname]['tmp_name'];
  $size = @$_FILES[$formname]['size'];
  $error = @$_FILES[$formname]['error'];
  //$type = $_FILES[$formname]['type'];
  
  if(is_array($name)){
  
   $errors = array();
   for($i=0; $i     if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
     if(!$this->checkfileSize() || !$this->checkfileType()){
      $errors[] = $this->getError();
      $return = false;
     }
    }その他{
     $errors[] = $this->getError();
     $return = false;
    }
    if(!$return) $this->setFiles();
   }
   if($return){
    $newfileN = array();
    for($i=0; $i      if($this->setFiles($name[$i],$tmp_name[$i],$size[$i],$error[$i])){
      if(!$this->copyFile()){
       $errors[] = $this->getError();
       $return = false;
      }その他{
       $newfileN[] = $this->新しいファイル名;
      }
     }
     $this->newfileName = $newfileN;
    }
   }
   //print_r($errors);
   $this->errorMessg = $errors;
   // $errors をエコー;
   $return;
を返す   }その他{
   if($this->setFiles($name,$tmp_name,$size,$error)){
    $return = true;
    if($error) var_dump($error);
    
    if($this->checkfileSize() && $this->checkfileType()){
     
    }その他{
     $return = false;
    }
   }その他{
    $return = false;
   }
   if(!$return){
    $this->errorMessg = $this->getError();
   }
   $return;
を返す   }
 }
 //获取上传後の文書名
 関数 getnewFile(){
   $this->新しいファイル名を返す;
 }
 //指定された経路にファイルをコピーします
 関数 copyFile(){
  $filepath = rtrim($this->filepath,'/')."/";
  if(!$this->errorNum){
   if($this->prorandFile()){
     $this->newfileName = date('Ymdhis').rand(1000,9999).".".$this->fileType;
    }その他{
     $this->新しいファイル名 = $this->オリジン名;
    }
If(!move_uploaded_file($this->tmpfileName,$filepath.$this->newfileName)){
$this->setOption('errorNum',-3);
false を返します;
}その他{
true を返します;
}
}その他{
false を返します;
}
}

//アップロードエラー後に返されたメッセージ
関数 gteerror(){
$err = $this->errorMessg;
$err を返します;
}
}

?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631702.html技術記事これは、クラスへのページのアップロードを含むソース コード パッケージからダウンロードされます。方法は簡単で、次のファイルを同じファイル名で保存するだけで、ファイルの一括アップロード機能を簡単に実装できます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート