簡體   English   中英

PHP中的圖像重命名功能

[英]image rename function in php

我有這段代碼可以生成兩個圖像。

它的作用是產生與名稱圖像small_test.jpg.JPGtest.jpg.JPG

我需要的是用於產生相應的第一名稱test_s.jpg ,第二個到只是test.jpg

這需要對我需要幫助的功能進行更改。

function setFile($src = null) {
  $this->ext = strtoupper(pathinfo($src, PATHINFO_EXTENSION));
  if(is_file($src) && ($this->ext == "JPG" OR $this->ext == "JPEG")) {
    $this->img_r = ImageCreateFromJPEG($src);
  } elseif(is_file($src) && $this->ext == "PNG") {
    $this->img_r = ImageCreateFromPNG($src);
  } elseif(is_file($src) && $this->ext == "GIF") {
    $this->img_r = ImageCreateFromGIF($src);
  }
  $this->img_w = imagesx($this->img_r);
  $this->img_h = imagesy($this->img_r);
}

function resize($largestSide = 100) {
  $width = imagesx($this->img_r);
  $height = imagesy($this->img_r);
  $newWidth = 0;
  $newHeight = 0;

  if($width > $height){
    $newWidth = $largestSide;
    $newHeight = $height * ($newWidth / $width);
  } else {
    $newHeight = $largestSide;
    $newWidth = $width * ($newHeight / $height);
  }

  $this->dst_r = ImageCreateTrueColor($newWidth, $newHeight);
  imagecopyresampled( $this->dst_r, 
                      $this->img_r, 
                      0, 0, 0, 0, 
                      $newWidth, $newHeight, 
                      $width, $height);
  $this->img_r = $this->dst_r;
  $this->img_h = $newHeight;
  $this->img_w = $newWidth;
}

function createFile($output_filename = null) {
  if($this->ext == "JPG" OR $this->ext == "JPEG") {
    imageJPEG($this->dst_r, $this->uploaddir.$output_filename.'.'.$this->ext, $this->quality);
  } elseif($this->ext == "PNG") {
    imagePNG($this->dst_r, $this->uploaddir.$output_filename.'.'.$this->ext);
  } elseif($this->ext == "GIF") {
    imageGIF($this->dst_r, $this->uploaddir.$output_filename.'.'.$this->ext);
  }
  return $output_filename;
}

function setUploadDir($dirname) {
  $this->uploaddir = $dirname;
}

function flush() {
  $tempFile = $_FILES['Filedata']['tmp_name'];
  $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
  $targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
  $filename = $_FILES['Filedata']['name']; 
  $ext = pathinfo($filename, PATHINFO_EXTENSION);
  $thumbnail = basename($filename,'.' .$ext) . '_s.' . $ext;    

  imagedestroy($this->dst_r);
  unlink($targetFile);
  imagedestroy($this->img_r);
}

}

$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
$filename = $_FILES['Filedata']['name']; 
$ext = pathinfo($FileName, PATHINFO_EXTENSION);
$thumbnail = basename($FileName,'.' .$ext) . '_s.' . $ext;  
move_uploaded_file ($tempFile, $targetFile);

$image = new Image();
$image->setFile($targetFile);
$image->setUploadDir($targetPath);
$image->resize(640);
$small_file = $image->createFile('small_'.$filename);
$image->resize(100);
$large_file = $image->createFile($filename);
$image->flush();
}

您的代碼太錯誤了,如果不重新編碼就無法修復。

您應該嘗試: http : //phpthumb.gxdlabs.com 我使用的是它,它性能好,無錯誤且具有安全意識。

它可以做很多事情,我強烈建議您使用它,而不要嘗試創建自己的庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM