亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php文件圖片批量上傳程序代碼

2024-09-04 11:45:00
字體:
來源:轉載
供稿:網友

今天看到一個站長寫了一個文件批量插件了,也是利用php寫了,個人感覺還非常的不錯于是整理一下給各位同學參考一下有興趣的可下載測試一下.

說明:uploadx php批量上傳組件遵循開源協議(GPL),任何個人、組織可自由對本程序進行使用、二次開發等權力.

由此也將聲明本人不對您個人、組織使用本程序所帶來的商業利益及損失有干涉及負責,但請保留版權信息,也歡迎對uploadx提出保貴的建議及意見,不勝感激.

本程序使用PHP程序編寫,能更高效的批量處理PHP開發中的文件上傳,圖片處理、批量添加圖片水印等問題,在使用本程序前請詳細閱讀使用說明.

HTML表單頁,代碼如下:

  1. <form enctype="multipart/form-data" action="uploadx.php" method="post">    
  2.     <input name="uploadx[]" type="file">    
  3.     <input name="uploadx[]" type="file">    
  4.     <input type="submit" value="上傳">    
  5. </form>  

uploadx.php處理頁:

  1. require ('./classes/uploadx.class.php');   
  2.    
  3. $uploadx = new uploadx;   
  4.    
  5. $uploadx->save = './temp';   
  6. $uploadx->name = 'auto';   
  7. $uploadx->mini = '200,200,mini';   
  8. $uploadx->mark = './images/logo.png,0,60';   
  9. print_r($uploadx->is()); 

參數說明:

$uploadx->save

上傳文件的保存目錄

$uploadx->name; 

上傳文件的命名方式

參數說明 

auto=自動隨機文件名

null=原文件名(覆蓋)

其他自定義如按時間:date('YmdHis'); 

$uploadx->mini;

生成縮略圖參數

width = 生成縮略圖寬度。

height = 生成縮略圖高度。

mini = 生成縮略圖文件后綴附加名

默認留空不生成縮略圖; 

$uploadx->mark; 

上傳圖片文件添加水印參數:

水印文件,水印位置,水印透明度

位置參數說明:

0 = 隨機;1 = 左上角;2 = 頂部居中;3 = 右上角;4 = 左居中;5 = 中部居中;6 = 右居中;7 = 左下角;8 = 底部居中;9 = 右下角;

$uploadx->is(true);返回已上傳文件的數組

is參數說明:

true = 返回所有上傳文件

false = 過濾失敗文件 

$uploadx->is(); 

返回數據數組格式說明:

name = 上傳后已保存的文件名

mini = 生成縮略圖的文件名

mark = 添加水印狀態,1表示成功,否則失敗

code = 錯誤代碼:0表示上傳成功

error = 錯誤信息:上傳錯誤時提示的錯誤信息

其中生成縮略圖和添加水印功能也可單獨使用,以上是對uploadx2.0 進行簡單的介紹,也歡迎各位能在使用過程中進行改進補充.

例子代碼如下:

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
  4. <title>uploadx demo</title> 
  5. </head> 
  6.  
  7. <body> 
  8. <form enctype="multipart/form-data" action="uploadx.php" method="post">  
  9.  <input name="uploadx[]" type="file"> <br /> 
  10.  <input name="uploadx[]" type="file"> <br />  
  11.  <input name="uploadx[]" type="file"> <br /> 
  12.  <input name="uploadx[]" type="file"> <br /> 
  13.  <br /> 
  14.  <input type="submit" value="上傳所選文件">  
  15. </form>  
  16. </body> 
  17. </html> 
  18.  
  19. <?php 
  20.  
  21. require ('./classes/uploadx.class.php'); 
  22.  
  23. $uploadx = new uploadx; 
  24.  
  25. $uploadx->save = './temp'
  26. $uploadx->name = 'auto'
  27. $uploadx->mini = '200,200,mini'
  28. $uploadx->mark = './images/logo.png,0,60'
  29. print_r($uploadx->mini('./temp/2.jpg')); 

uploadx.class.php

  1. class uploadx { 
  2.   var $form = 'uploadx'
  3.   var $save = './';   
  4.   var $size = '1024'
  5.   var $type = 'gif,bmp,png,jpg,jpeg,swf,flv,mp3,wma,rar,zip,7z,doc,docx,ppt,pptx,xls,xlsx,txt,pdf'
  6.   var $name = null; 
  7.   var $mini = null; 
  8.   var $mark = null; 
  9.   var $version = '2.0'
  10. //開源代碼Vevb.com 
  11.   public function is($type = true){ 
  12.    foreach ($this->files() as $key => $val) { 
  13.     $file = $mini = null; 
  14.     $file = $this->saves($val['name'], $val['type'], $val['tmp_name'], $val['size'], $val['error']); 
  15.     $file['code'] || $file['path'] = rtrim($this->save,'/').'/'.$file['name']; 
  16.     $file['code'] || $file['mini'] = $this->mini($file['path']);   
  17.     $file['code'] || $file['mark'] = $this->mark($file['path']);     
  18.     $file['code'] && $file['error'] = $this->error($file['code']); 
  19.     $type ? $files[] = $file :  ($file['code'] || $files[] = $file); 
  20.    } 
  21.     return isset($files) ? $files : array(); 
  22.   } 
  23.   private function files(){ 
  24.    if(count($_FILES[$this->form])<1) return array(); 
  25.    if(is_array($_FILES[$this->form]['name'])){ 
  26.     for($i=0; $i<count($_FILES[$this->form]['name']); $i++) { 
  27.      if($_FILES[$this->form]['error'][$i]==4) continue
  28.      $files[] = array
  29.       'name'=>$_FILES[$this->form]['name'][$i], 
  30.       'type'=>$_FILES[$this->form]['type'][$i], 
  31.       'tmp_name'=>$_FILES[$this->form]['tmp_name'][$i], 
  32.       'error'=>$_FILES[$this->form]['error'][$i], 
  33.       'size'=>$_FILES[$this->form]['size'][$i]); 
  34.     }  
  35.    }else
  36.      $files[] = $_FILES[$this->form];  
  37.    } 
  38.      return $files
  39.   } 
  40.   private function saves($name$type$temp$size$error){   
  41.     if($errorreturn array('name'=>$name'code'=>$error); 
  42.     $prefix = strtolower(pathinfo($name, PATHINFO_EXTENSION)); 
  43.     if(!in_array($prefixexplode(','strtolower($this->type)))){ 
  44.      return array('name'=>$name'code'=>'-1'); 
  45.     } 
  46.     if($size/1024>$this->size){ 
  47.      return array('name'=>$name'code'=>'-2'); 
  48.     } 
  49.     if(!is_dir($this->save)){ 
  50.      if(!mkdir($this->save, 0777, TRUE)){ 
  51.      return array('name'=>$name'code'=>'-3'); 
  52.      }      
  53.     } 
  54.     $filename = $this->name ? ($this->name=='auto' ? uniqid() : $this->name) : trim(basename($name,$prefix),'.'); 
  55.     $savefile = trim($this->save,'/').'/'$filename.'.'.$prefix
  56.     if(!@move_uploaded_file($temp,$savefile)){ 
  57.      return array('name'=>$name'code'=>'-4'); 
  58.     } 
  59.      @chmod($savefile,0777);   
  60.     return array('name'=>$filename.'.'.$prefix'code'=>0); 
  61.   } 
  62.   public function mini($file = null){ 
  63.    if(!$file || !$this->mini) return false; 
  64.    if(!is_file($file)) return $this->error(-5,$file); 
  65.    list($width$height$extends) = explode(','$this->mini); 
  66.    $types = array('gif','png','jpg','jpeg'); 
  67.    $type = pathinfo($file, PATHINFO_EXTENSION); 
  68.    if(!in_array($type$types)) return $this->error(-6); 
  69.    if(!is_file($file)) return $this->error(-5,$file);  
  70.    $mini = $extends ? basename($file$type).$extends.'.'.$type : trim(basename($file),'.'); 
  71.    $image = imagecreatefromstring(file_get_contents($file)); 
  72.    $imagex = imagesx($image); 
  73.    $imagey = imagesy($image); 
  74.    $scale = $width / $imagex
  75.    if($width>$imagex){ 
  76.     $mini_width = $imagex
  77.     $mini_height = $imagey;  
  78.    }else
  79.     $mini_width = $width
  80.     $mini_height = round($scale * $imagey);  
  81.    } 
  82.    if(function_exists('imagecreatetruecolor') && function_exists('imagecopyresampled')){ 
  83.     $temp = imagecreatetruecolor($mini_width$mini_height); 
  84.     imagecopyresampled($temp,$image,0,0,0,0,$mini_width$mini_height$imagex$imagey); 
  85.    }else
  86.     $temp = imagecreate($mini_width$mini_height); 
  87.     imagecopyresized($temp,$image,0,0,0,0,$mini_width$mini_height$imagex$imagey);     
  88.    } 
  89.     imagejpeg($temp, rtrim($this->save,'/').'/'.$mini, 100); 
  90.     imagedestroy($temp); 
  91.     imagedestroy($image); 
  92.  
  93.    return is_file(rtrim($this->save,'/').'/'.$mini) ? $mini: false; 
  94.   } 
  95.   public function mark($file = null){ 
  96.      if(!$file || !$this->mark) return false;      
  97.      list($watermark$position$opacity) = explode(','$this->mark); 
  98.      if(!is_file($file) || !is_file($watermark)) return $this->error(-5,'FILE='.$file.'||'.'Watermark='.$watermark); 
  99.    $type = pathinfo($file, PATHINFO_EXTENSION); 
  100.    $types = array('gif','png','jpg','jpeg'); 
  101.    if(!in_array($type$types)) return $this->error(-6,$file); 
  102.          $opacity = min($opacity,100); 
  103.    $file_data = imagecreatefromstring(file_get_contents($file)); 
  104.          $file_width = imagesx($file_data); 
  105.          $file_height = imagesy($file_data); 
  106.          if (in_array(pathinfo($watermark, PATHINFO_EXTENSION), array('gif','png'))) { 
  107.           $mark_data = imagecreatefromstring(file_get_contents($watermark)); 
  108.           $mark_width = imagesx($mark_data); 
  109.           $mark_height =  imagesy($mark_data); 
  110.           switch($position){ 
  111.               case 1: $x = 5; $y = 5; break
  112.               case 2: $x = ($file_width - $mark_width)/2; $y = $mark_heightbreak;  
  113.               case 3: $x = ($file_width - $mark_width)-5; $y = $mark_heightbreak
  114.               case 4: $x = 5; $y = ($file_height - $mark_height) / 2; break
  115.               case 5: $x = ($file_width - $mark_width)/2; $y = ($file_height - $mark_height)/2; break
  116.               case 6: $x = ($file_width - $mark_width)-5; $y = ($file_height - $mark_height)/2; break
  117.               case 7: $x = 5; $y = ($file_height - $mark_height) - 5; break
  118.               case 8: $x = ($file_width - $mark_width)/2; $y = ($file_height - $mark_height)-5; break
  119.               case 9: $x = ($file_width - $mark_width)-5; $y = ($file_height - $mark_height)-5; break
  120.               default$x = rand(0,($file_width - $mark_width)); $y = rand(0,($file_height - $mark_height)); 
  121.           }   
  122.      $temp = imagecreatetruecolor($mark_width$mark_height);   
  123.         imagecopy($temp$file_data, 0, 0, $x$y$mark_width$mark_height);   
  124.         imagecopy($temp$mark_data, 0, 0, 0, 0, $mark_width$mark_height);   
  125.         imagecopymerge($file_data$temp$x$y, 0, 0, $mark_width$mark_height$opacity);            
  126.            imagejpeg($file_data$file, 100); 
  127.            imagedestroy($temp); 
  128.            imagedestroy($file_data); 
  129.            imagedestroy($mark_data); 
  130.            return true; 
  131.          }else
  132.            return $this->error(-6,$watermark); 
  133.          } www.111cn.net 
  134.   } 
  135.   private function error($code = 0, $extends = ''){ 
  136.    if($code){ 
  137.    switch ($code) {     
  138.     case 6:  $error = '寫入臨時文件夾失敗'break
  139.     case 5:  $error = '寫入系統臨時文件夾錯誤'break
  140.     case 4:  $error = '沒有文件被上傳請檢查表單'break
  141.     case 3:  $error = '文件上傳出錯上傳不完整'break
  142.     case 2:  $error = '文件大小超出表單限制'break
  143.     case 1:  $error = '文件大小超出系統限制'break
  144.     case -1: $error = '上傳文件類型不合法'break
  145.     case -2: $error = '上傳文件大小超出后臺限制'break;   
  146.     case -3: $error = '創建文件保存路徑失敗'break;  
  147.     case -4: $error = '保存文件失敗請檢查路徑'break;  
  148.     case -5: $error = '讀取文件錯誤'break;  
  149.     case -6: $error = '不支持該操作'break;  
  150.     default$error = '未知錯誤'
  151.    } 
  152.     return  '['.$code.']:'.$error.$extends
  153.    }else
  154.     return false;  
  155.    }  
  156.   } 
  157.  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97碰碰碰免费色视频| 在线免费看av不卡| 日韩高清电影免费观看完整| 91超碰中文字幕久久精品| 国产日韩av高清| 亚洲美女视频网| 91精品久久久久久久久久久| 中文字幕亚洲一区在线观看| 亚洲成人xxx| 亚洲精品国产精品乱码不99按摩| 欧美在线观看一区二区三区| 国产精品日韩欧美| 精品久久久久久电影| 综合国产在线观看| www日韩中文字幕在线看| 亚洲国产第一页| 日韩av一区二区在线| 国产精品一区二区电影| 奇米成人av国产一区二区三区| 色婷婷成人综合| 久久综合伊人77777尤物| 日韩av网站导航| 精品国模在线视频| 中日韩美女免费视频网址在线观看| 成人黄色片网站| 欧美国产亚洲视频| 亚洲第一区在线| 日韩免费观看高清| 亚洲精品一区中文| 精品人伦一区二区三区蜜桃网站| 久久av在线看| 日韩免费观看网站| 不卡av电影在线观看| 激情成人中文字幕| 韩国三级电影久久久久久| 欧洲s码亚洲m码精品一区| 欧洲午夜精品久久久| 欧美男插女视频| 久久网福利资源网站| 亚洲高清久久久久久| 欧美体内谢she精2性欧美| 日韩av网站导航| 亚洲网址你懂得| 萌白酱国产一区二区| 激情成人中文字幕| 国产精品视频内| 国产亚洲精品综合一区91| 一区二区三区日韩在线| www国产亚洲精品久久网站| 97国产精品视频人人做人人爱| 日韩欧美亚洲一二三区| 欧美激情aaaa| 成年无码av片在线| 理论片在线不卡免费观看| 亚洲欧美日韩精品久久| 亚洲欧美在线免费观看| 亚洲精品久久久久久下一站| 亚洲永久在线观看| 久久91亚洲精品中文字幕| 日韩免费在线免费观看| 国产精品99久久久久久久久久久久| 久久亚洲精品国产亚洲老地址| 日韩少妇与小伙激情| 国产精品久久久久久久久免费看| 久久久精品2019中文字幕神马| 亚洲欧美激情精品一区二区| 久久国产精品影视| 日本午夜人人精品| 日产精品久久久一区二区福利| 日韩成人小视频| 一本色道久久88亚洲综合88| 精品欧美一区二区三区| 性色av一区二区三区红粉影视| 国产精品久久久久久一区二区| 中文欧美日本在线资源| 国产精品一区二区性色av| 国产精品国产亚洲伊人久久| 亚洲影视九九影院在线观看| 欧美性理论片在线观看片免费| 91av在线视频观看| 国产精品视频在线播放| 91av成人在线| 亚洲国产成人精品久久久国产成人一区| 欧洲精品毛片网站| 亚洲福利视频网站| 亚洲va欧美va国产综合久久| 亚洲第一区在线观看| 色综合天天狠天天透天天伊人| 2020久久国产精品| 国产精品高清在线| 精品调教chinesegay| 日韩精品极品在线观看| 538国产精品视频一区二区| 欧美主播福利视频| 国产欧美日韩亚洲精品| 秋霞午夜一区二区| 久热爱精品视频线路一| 欧美日韩另类视频| 亚洲国产精品va在线| 精品久久久久久亚洲精品| 亚洲美腿欧美激情另类| 亚洲人成网站在线播| 欧美大片免费看| 亚洲国产精品电影在线观看| 欧美在线视频a| 日本成熟性欧美| 国产一区二区日韩精品欧美精品| 韩国19禁主播vip福利视频| 日韩中文字幕久久| 最近2019年好看中文字幕视频| 亚洲欧美激情精品一区二区| 在线视频免费一区二区| 久久亚洲精品视频| 成人精品在线视频| 欧美精品性视频| 51精品国产黑色丝袜高跟鞋| 国产精品网站入口| 国产精品久久久久久久久久久久| 国产不卡av在线| 91精品久久久久久久久久另类| 欧美性猛交xxxx免费看漫画| 亲爱的老师9免费观看全集电视剧| 欧美视频精品一区| 亚洲影院色在线观看免费| 亚洲久久久久久久久久久| 国产伊人精品在线| 在线不卡国产精品| 欧美在线欧美在线| 亚洲一区二区少妇| 久久精品国产v日韩v亚洲| 欧美中文在线免费| 久久精品视频网站| 成人免费淫片aa视频免费| 热久久美女精品天天吊色| 精品少妇一区二区30p| 91精品国产高清自在线| 大桥未久av一区二区三区| 亚洲视频自拍偷拍| 中文字幕一区二区精品| 97视频在线观看网址| 久久久999精品视频| 国产极品精品在线观看| 国产一区二区成人| 亚洲国产精品久久91精品| 亚洲毛片在线观看.| 久久中文字幕视频| 欧美成人国产va精品日本一级| 欧美影院在线播放| 国产精品综合久久久| 91成人福利在线| 在线日韩欧美视频| 国产美女精品视频免费观看| 久久精品91久久香蕉加勒比| 国模gogo一区二区大胆私拍| 第一福利永久视频精品| 91精品国产综合久久香蕉922| 欧美精品免费看| 欧美综合国产精品久久丁香| 日本不卡高字幕在线2019| 亚洲成色777777女色窝| 色婷婷综合久久久久中文字幕1| 精品国产乱码久久久久久虫虫漫画| 91超碰caoporn97人人| 911国产网站尤物在线观看|