php檔案上傳類upload_class的擴充類及樣本

來源:互聯網
上載者:User
本文介紹下,一個用於上傳圖片的php類,是基於之前的upload_class類的一個擴充。有需要的朋友,可以參考下。

分享一個上傳圖片檔案的php擴充類,基於前文:php檔案上傳類與執行個體的一個擴充。主要用於上傳圖片檔案。

代碼:

upload_dir.$this->file_copy;         $this->check_dir($this->thumb_folder); // run these checks to create not existing directories         $this->check_dir($this->foto_folder); // the upload dir is created during the file upload (if not already exists)         $thumb = $this->thumb_folder.$this->file_copy;         $foto = $this->foto_folder.$this->file_copy;         if ($landscape_only) {             $this->get_img_size($filename);             if ($this->y_size > $this->x_size) {                 $this->img_rotate($filename, $compression);             }         }         $this->check_dimensions($filename); // check which size is longer then the max value         if ($this->larger_curr_value > $this->larger_dim_value) {             $this->thumbs($filename, $foto, $this->larger_dim_value, $compression);         } else {             copy($filename, $foto);         }         if ($create_thumb) {             if ($this->larger_curr_value > $this->larger_dim_thumb_value) {                 $this->thumbs($filename, $thumb, $this->larger_dim_thumb_value, $compression); // finally resize the image             } else {                 copy($filename, $thumb);             }         }         if ($delete_tmp_file) $this->del_temp_file($filename); // note if you delete the tmp file the check if a file exists will not work     }     function get_img_size($file) {         $img_size = getimagesize($file);         $this->x_size = $img_size[0];         $this->y_size = $img_size[1];     }     function check_dimensions($filename) {         $this->get_img_size($filename);         $x_check = $this->x_size - $this->x_max_size;         $y_check = $this->y_size - $this->y_max_size;         if ($x_check < $y_check) {             $this->larger_dim = "y";             $this->larger_curr_value = $this->y_size;             $this->larger_dim_value = $this->y_max_size;             $this->larger_dim_thumb_value = $this->y_max_thumb_size;         } else {             $this->larger_dim = "x";             $this->larger_curr_value = $this->x_size;             $this->larger_dim_value = $this->x_max_size;             $this->larger_dim_thumb_value = $this->x_max_thumb_size;         }     }     function img_rotate($wr_file, $comp) {         $new_x = $this->y_size;         $new_y = $this->x_size;         if ($this->use_image_magick) {             exec(sprintf("mogrify -rotate 90 -quality %d %s", $comp, $wr_file));         } else {             $src_img = imagecreatefromjpeg($wr_file);             $rot_img = imagerotate($src_img, 90, 0);             $new_img = imagecreatetruecolor($new_x, $new_y);             imageantialias($new_img, TRUE);             imagecopyresampled($new_img, $rot_img, 0, 0, 0, 0, $new_x, $new_y, $new_x, $new_y);             imagejpeg($new_img, $this->upload_dir.$this->file_copy, $comp);         }     }     function thumbs($file_name_src, $file_name_dest, $target_size, $quality = 80) {         //print_r(func_get_args());         $size = getimagesize($file_name_src);         if ($this->larger_dim == "x") {             $w = number_format($target_size, 0, ',', '');             $h = number_format(($size[1]/$size[0])*$target_size,0,',','');         } else {             $h = number_format($target_size, 0, ',', '');             $w = number_format(($size[0]/$size[1])*$target_size,0,',','');         }         if ($this->use_image_magick) {             exec(sprintf("convert %s -resize %dx%d -quality %d %s", $file_name_src, $w, $h, $quality, $file_name_dest));         } else {             $dest = imagecreatetruecolor($w, $h);             imageantialias($dest, TRUE);             $src = imagecreatefromjpeg($file_name_src);             imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);             imagejpeg($dest, $file_name_dest, $quality);         }     } } $max_size = 1024*1024; // the max. size for uploading (~1MB) define("MAX_SIZE", $max_size); $foto_upload = new Foto_upload; $foto_upload->upload_dir = $_SERVER['DOCUMENT_ROOT']."/files/"; // "files" is the folder for the uploaded files (you have to create these folder) $foto_upload->foto_folder = $_SERVER['DOCUMENT_ROOT']."/files/photo/"; $foto_upload->thumb_folder = $_SERVER['DOCUMENT_ROOT']."/files/thumb/"; $foto_upload->extensions = array(".jpg"); // specify the allowed extension(s) here $foto_upload->language = "en"; $foto_upload->x_max_size = 300; $foto_upload->y_max_size = 200; $foto_upload->x_max_thumb_size = 120; $foto_upload->y_max_thumb_size = 150;          if (isset($_POST['Submit']) && $_POST['Submit'] == "Upload") {     $foto_upload->the_temp_file = $_FILES['upload']['tmp_name'];     $foto_upload->the_file = $_FILES['upload']['name'];     $foto_upload->http_error = $_FILES['upload']['error'];     $foto_upload->replace = (isset($_POST['replace'])) ? $_POST['replace'] : "n"; // because only a checked checkboxes is true     $foto_upload->do_filename_check = "n";      if ($foto_upload->upload()) {         $foto_upload->process_image(false, true, 80);         $foto_upload->message[] = "Processed foto: ".$foto_upload->file_copy."!"; // "file_copy is the name of the foto"     } } $error = $foto_upload->show_error_string(); ?>

2,上傳圖片的調用樣本

    php圖片上傳類的調用樣本-bbs.it-home.org       

上傳圖片

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.