PHP画像アップロードコード(サムネイル生成・ウォーターマーク追加機能付き)_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:45:03
オリジナル
854 人が閲覧しました

この画像アップロードソースコードは、画像をアップロードすることができ、サムネイルを生成し、アップロードされた画像に透かしを追加する機能も備えており、完璧な画像アップローダーと言えます。

phpチュートリアル画像アップロードコード(サムネイル生成とウォーターマーク追加機能付き)
この画像アップロードソースコードは画像をアップロードできるだけでなく、アップロードした画像にサムネイルを生成したりウォーターマークを追加したりする機能も備えており、完璧な画像アップロードクラスと言えます。

クラスアップファイル{
public $filepath = "www.bKjia.c0m/" //ファイル保存フォルダーをアップロードします

public $filesize = 1000000 //アップロードサイズを許可します

;

//アップロードを許可するファイルの種類を変更したい場合は、[ switch ($upfiletype) { //ファイル タイプ ]を検索してください

public $reimagesize = array (
true, //サムネイルを生成するかどうか
400, //サムネイルの幅
300,//サムネイルの高さ
"" //サムネイル保存フォルダー。空の場合、サムネイルを生成する現在のファイルと同じディレクトリにあります。ファイルのプレフィックスは r_
です。 ); //サムネイル配列を生成するかどうか (生成するかどうか、サムネイルの幅、サムネイルの高さ、保存フォルダー); 注: 保存フォルダーの後には '/' が付きます。

public $india = true //透かしを入れるかどうか、true の場合は false、いいえ

public $indiaimage = ""; //ウォーターマーク画像アドレスが空の場合、画像ウォーターマークは印刷されません。テキストウォーターマークがある場合は、画像ウォーターマークを有効にしないことをお勧めします。

public $indiaimagex = 100; //画像と画像の左側の間の距離

;

public $indiaimagey = 10; // 画像と画像の上部の間の距離

;

public $indiatext = "www.bKjia.c0m" //透かしテキスト

;

public $fontsize = 6 //透かしのテキスト サイズ、最小 1、最大 6

public $indiatextx = 10; // テキストと画像の左側の間の距離

;

public $indiatexty = 10; //テキストと画像の上部の間の距離

public $r = 250 //画像の色の三原色 $r 赤

;

public $g = 250 //$g 緑

;

パブリック $b = 250 //$b 青

;

public $indiapath = ""; //透かし入りの画像の保存パス。空の場合は、元の画像を直接置き換えます

//开始上传处理
 関数アップロードファイル($upfile) {
  if ($upfile == "") {
   die("uploadfile:パラメータ不足");
  }
  if (!file_exists($this->ファイルパス)) {
   mkdir($this->ファイルパス);
  }
  $upfiletype = $upfile['type'];
  $upfilesize = $upfile['size'];
  $upfiletmpname = $upfile['tmp_name'];
  $upfilename = $upfile['name'];
  $upfileerror = $upfile['error'];
  if ($upfilesize > $this->filesize) {
   false を返します。 //文件过大
  }
  switch ($upfiletype) { //文件类型
   ケース「画像/jpeg」:
    $type = 'jpg';
    休憩;
   ケース「画像/pjpeg」:
    $type = 'jpg';
    休憩;
   ケース「画像/png」:
    $type = 'png';
    休憩;
   ケース「画像/GIF」:
    $type = 'gif';
    休憩;
  }
  if (!isset ($type)) {
   false を返します。 //このタイプはサポートしません
  }
  if (!is_uploaded_file($upfiletmpname) または !is_file($upfiletmpname)) {
   false を返します;
   ; //文件不是经过正规上传的;
  }
  if ($this->upfileerror != 0) {
   false を返します。 //その他错误
  }
  if ($this->upfileerror == 0) {
   if (!file_exists($upfiletmpname)) {
    false を返します。 //一時文は存在しません
   } その他 {
    $filename = date("ymdhis", time() + 3600 * 8); //图片已当時刻间命名
    $filename = $this->ファイルパス 。 $ファイル名 。 「。」 。 $type;
    if (!move_uploaded_file($upfiletmpname, $filename)) {
     false を返します。 //文が移動中に紛失しました
    } その他 {
     if ($this->india == true) {
      $this->goindia($filename, $type,true);
     } その他 {
      if ($this->reimagesize[0] == true) {
       $this->goreimagesize($filename, $type);
      } その他 {
       true を返します。 //上传成功!
       リンク解除($upfiletmpname);
      }
     }
    }

}
  }

}
//ウォーターマーク処理を追加
function goindia($filename, $filetype,$reimage=false) {
if (!file_exists($filename)) {
$this->reerror(7); //透かしを入れるファイルが存在しません
} その他 {
if ($filetype == "jpg") {
$im = imagecreatefromjpeg($filename);

If ($filetype == "gif") {
$im = imagecreatefromgif($filename);

If ($filetype == "png") {
$im = imagecreatefrompng($filename);
}
if ($this->indiatext != "") { //ウォーターマークテキストが空でない場合
$textcolor = imagecolorallocate($im, $this->r, $this->g, $this->b) // テキストの色を設定します
Imagestring($im, $this->fontsize, $this->indiatextx, $this->indiatexty, $this->indiatext, $textcolor); // 画像にテキストを書き込みます
}
if ($this->indiaimage != "") {//ウォーターマーク画像が空でない場合
$indiaimagetype = getimagesize($this->indiaimage);
$logow = $indiaimagetype[0] //ウォーターマーク画像の幅を取得します
; $logoh = $indiaimagetype[1] //ウォーターマーク画像の高さを取得します
; Switch ($indiaimagetype[2]) { //ウォーターマーク画像の形式を決定します
ケース 1:
$indiaimagetype = "gif";
$logo = imagecreatefromgif($this->indiaimage);
休憩;
ケース 2:
$indiaimagetype = "jpg";
$logo = imagecreatefromjpeg($this->indiaimage);
休憩;
ケース 3:
$indiaimagetype = "png";
$logo = imagecreatefrompng($this->indiaimage);
休憩;
}
Imagealphablending($im, true) //カラーブレンドモードをオンにする
Imagecopy($im, $logo, $this->indiaimagex, $this->indiaimagey, 0, 0, $logow, $logoh);
画像破壊($im);
Imagedestroy($logo);
}
}
if ($this->indiapath == "") { //ウォーターマークの保存アドレスが空でない場合
if ($filetype == "jpg") {
Imagejpeg($im, $filename);

If ($filetype == "gif") {
Imagegif($im, $filename);

If ($filetype == "png") {
Imagepng($im, $filename);
}
if($reimage == true){
$this->goreimagesize($filename,$filetype);
}その他{
true を返します // ウォーターマークが正常に追加されました
}
} その他 {
if (!file_exists($this->indiapath)) {
mkdir($this->インドパス);
return false //再アップロードしてください
} その他 {
$indianame = ベース名($filename);
$indianame = $this->indiapath .
If ($filetype == "jpg") {
Imagejpeg($im, $indianame);

If ($filetype == "gif") {
Imagegif($im, $indianame);

If ($filetype == "png") {
Imagepng($im, $indianame);
}
If($reimage == true){
$this->goreimagesize($indianame,$filetype);
エコー $indianame;
}その他{
true を返します // ウォーターマークが正常に追加されました
}
}
}
}
function goreimagesize($filename, $filetype) {
if (!file_exists($filename)) {
Return false; //サムネイルとして生成する画像が存在しません
} その他 {
if ($filetype == 'jpg') {
$reimage = imagecreatefromjpeg($filename);
}
elseif ($filetype == 'png') {
$reimage = imagecreatefrompng($filename);

If ($filetype == 'gif') {
$reimage = imagecreatefromgif($filename);
}
if (isset ($reimage)) {
$srcimagetype = getimagesize($filename);
$srcimagetypew = $srcimagetype[0] //元の画像の幅を取得します
; $srcimagetypeh = $srcimagetype[1] //元の画像の高さを取得します
; $reim = imagecreatetruecolor($this->reimagesize[1], $this->reimagesize[2]);
Imagecopyresize($reim, $reimage, 0, 0, 0, 0, $this->reimagesize[1], $this->reimagesize[2], $srcimagetypew, $srcimagetypeh);
$reimagepath = $this->reimagesize[3];
If ($reimagepath != "") { //ウォーターマーク保存アドレスが空でない場合
If (!file_exists($reimagepath)) {
mkdir($reimagepath);
} その他 {
$reimagename = ベース名($ファイル名);
$reimagename = $reimagepath . $reimagename;
If ($filetype == "gif")
Imagegif($reim, $reimagename);
その他
if ($filetype == "jpg")
Imagejpeg($reim, $reimagename);
その他
if ($filetype == "png")
Imagepng($reim, $reimagename);
true を返します;
}
} その他 {
$filename = ベース名($filename);
If($this->indiapath == ""){
$filename = $this->filepath."r_" . }その他{
$filename = $this->indiapath."r_" . $filename;
}
If ($filetype == "gif")
Imagegif($reim, $filename);
その他
If ($filetype == "jpg")
Imagejpeg($reim, $filename);
その他
if ($filetype == "png")
Imagepng($reim, $filename);
true を返します;
}

}

}
}

}

if ($_post["送信"]) {
$file = $_files['uploadfile'];
$upfile = 新しい upfile();
echo $upfile->uploadfile($file);
}
?>

<フォームアクション="" メソッド="ポスト" enctype="multipart/form-data">





http://www.bkjia.com/PHPjc/633045.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633045.html技術記事この画像アップロードソースコードは画像をアップロードできるだけでなく、アップロードした画像にサムネイルを生成したりウォーターマークを追加したりする機能も備えており、完璧な画像アップロードクラスと言えます。 php が教えます...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート