欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

PHP上傳自動生成縮略圖及水印類(含代碼)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP技術(shù):txtSQL安裝手冊中文版
txtsql的最大優(yōu)點之一是文檔很詳細,可惜,我在網(wǎng)上找了半天也找不到中文版的文檔,所以只好自己動手,利人利已吧,不過自己的E文水平自己是很清楚的,希望大家看了不會笑掉大牙才好,還希望大家多多指教。 歡迎使用txtSQL 2.2快速安裝手冊。這頁將指引你如何

思路很大一部分是原創(chuàng)的,但也有一些是COPY網(wǎng)絡(luò)的,寫得不夠規(guī)范,還請各位大大不要見笑,同時給小弟些意見。

開始第一步:
創(chuàng)建文件夾,布局:
annex:附件(該目錄下存放上傳的原圖片)
|— smallimg:存放縮略圖片
|— mark:存放水印圖片
include:存放類文件,字體(本程序代碼使用的是:04B_08__.TTF)
|— upfile.php:集成簡單上傳,生成縮略圖及水印的類文件信息
|— 04B_08__.TTF:字體文件
test.php:測試文件

進入第二步:
代碼研究,希望各位能好好看看,小弟也是初學者,同時也希望各位能提出寶貴意見,小弟定會虛心領(lǐng)教的(寫得不好不要拿雞蛋砸偶噢)


-------------------------------------------------------------------------------
upfile.php

<?php
class UPImages {
var annexFolder = "annex";//附件存放點,默認為:annex
var smallFolder = "smallimg";//縮略圖存放路徑,注:必須是放在 annexFolder下的子目錄,默認為:smallimg
var markFolder = "mark";//水印圖片存放處
var upFileType = "jpg gif png";//上傳的類型,默認為:jpg gif png rar zip
var upFileMax = 1024;//上傳大小限制,單位是“KB”,默認為:1024KB
var fontType;//字體
var maxWidth = 500; //圖片最大寬度
var maxHeight = 600; //圖片最大高度

function UPImages(annexFolder,smallFolder,includeFolder) {
this->annexFolder = annexFolder;
this->smallFolder = smallFolder;
this->fontType = includeFolder."/04B_08__.TTF";
}

function upLoad(inputName) {
imageName = time();//設(shè)定當前時間為圖片名稱
if(@empty(_FILES[inputName]["name"])) die(error("沒有上傳圖片信息,請確認"));
name = explode(".",_FILES[inputName]["name"]);//將上傳前的文件以“.”分開取得文件類型
imgCount = count(name);//獲得截取的數(shù)量
imgType = name[imgCount-1];//取得文件的類型
if(strpos(this->upFileType,imgType) === false) die(error("上傳文件類型僅支持 ".this->upFileType." 不支持 ".imgType));
photo = imageName.".".imgType;//寫入數(shù)據(jù)庫的文件名
uploadFile = this->annexFolder."/".photo;//上傳后的文件名稱
upFileok = move_uploaded_file(_FILES[inputName]["tmp_name"],uploadFile);
if(upFileok) {
imgSize = _FILES[inputName]["size"];
kSize = round(imgSize/1024);
if(kSize > (this->upFileMax*1024)) {
@unlink(uploadFile);
die(error("上傳文件超過 ".this->upFileMax."KB"));
}
} else {
die(error("上傳圖片失敗,請確認你的上傳文件不超過 upFileMax KB 或上傳時間超時"));
}
return photo;
}

function getInfo(photo) {
photo = this->annexFolder."/".photo;
imageInfo = getimagesize(photo);
imgInfo["width"] = imageInfo[0];
imgInfo["height"] = imageInfo[1];
imgInfo["type"] = imageInfo[2];
imgInfo["name"] = basename(photo);
return imgInfo;
}

function smallImg(photo,width=128,height=128) {
imgInfo = this->getInfo(photo);
photo = this->annexFolder."/".photo;//獲得圖片源
newName = substr(imgInfo["name"],0,strrpos(imgInfo["name"], "."))."_thumb.jpg";//新圖片名稱
if(imgInfo["type"] == 1) {
img = imagecreatefromgif(photo);
} elseif(imgInfo["type"] == 2) {
img = imagecreatefromjpeg(photo);
} elseif(imgInfo["type"] == 3) {
img = imagecreatefrompng(photo);
} else {
img = "";
}
if(empty(img)) return False;

width = (width > imgInfo["width"]) ? imgInfo["width"] : width;
height = (height > imgInfo["height"]) ? imgInfo["height"] : height;
srcW = imgInfo["width"];
srcH = imgInfo["height"];
if (srcW * width > srcH * height) {
height = round(srcH * width / srcW);
} else {
width = round(srcW * height / srcH);
}
if (function_exists("imagecreatetruecolor")) {
newImg = imagecreatetruecolor(width, height);
ImageCopyResampled(newImg, img, 0, 0, 0, 0, width, height, imgInfo["width"], imgInfo["height"]);
} else {
newImg = imagecreate(width, height);
ImageCopyResized(newImg, img, 0, 0, 0, 0, width, height, imgInfo["width"], imgInfo["height"]);
}

if (this->toFile) {
if (file_exists(this->annexFolder."/".this->smallFolder."/".newName)) @unlink(this->annexFolder."/".this->smallFolder."/".newName);
ImageJPEG(newImg,this->annexFolder."/".this->smallFolder."/".newName);
return this->annexFolder."/".this->smallFolder."/".newName;
} else {
ImageJPEG(newImg);
}
ImageDestroy(newImg);
ImageDestroy(img);
return newName;
}

function waterMark(photo,text) {
imgInfo = this->getInfo(photo);
photo = this->annexFolder."/".photo;
newName = substr(imgInfo["name"], 0, strrpos(imgInfo["name"], ".")) . "_mark.jpg";
switch (imgInfo["type"]) {
case 1:
img = imagecreatefromgif(photo);
break;
case 2:
img = imagecreatefromjpeg(photo);
break;
case 3:
img = imagecreatefrompng(photo);
break;
default:
return False;
}
if (empty(img)) return False;

width = (this->maxWidth > imgInfo["width"]) ? imgInfo["width"] : this->maxWidth;
height = (this->maxHeight > imgInfo["height"]) ? imgInfo["height"] : this->maxHeight;
srcW = imgInfo["width"];
srcH = imgInfo["height"];
if (srcW * width > srcH * height) {
height = round(srcH * width / srcW);
} else {
width = round(srcW * height / srcH);
}

if (function_exists("imagecreatetruecolor")) {
newImg = imagecreatetruecolor(width, height);
ImageCopyResampled(newImg, img, 0, 0, 0, 0, width, height, imgInfo["width"], imgInfo["height"]);
} else {
newImg = imagecreate(width, height);
ImageCopyResized(newImg, img, 0, 0, 0, 0, width, height, imgInfo["width"], imgInfo["height"]);
}

white = imageColorAllocate(newImg, 255, 255, 255);
black = imageColorAllocate(newImg, 0, 0, 0);
alpha = imageColorAllocateAlpha(newImg, 230, 230, 230, 40);
ImageFilledRectangle(newImg, 0, height-26, width, height, alpha);
ImageFilledRectangle(newImg, 13, height-20, 15, height-7, black);
ImageTTFText(newImg, 4.9, 0, 20, height-14, black, this->fontType, text[0]);
ImageTTFText(newImg, 4.9, 0, 20, height-6, black, this->fontType, text[1]);

if(this->toFile) {
if (file_exists(this->annexFolder."/".this->markFolder."/".newName)) @unlink(this->annexFolder."/".this->markFolder."/".newName);
ImageJPEG(newImg,this->annexFolder."/".this->markFolder."/".newName);
return this->annexFolder."/".this->markFolder."/".newName;
} else {
ImageJPEG(newImg);
}
ImageDestroy(newImg);
ImageDestroy(img);
return newName;
}
}
?>

-------------------------------------------------------------------------

test.php
<?php
annexFolder = "annex";
smallFolder = "smallimg";
markFolder = "mark";
includeFolder = "include";

require("./".includeFolder."/upfile.php");
img = new UPImages(annexFolder,smallFolder,includeFolder);
text = array(www.dwww.cn,"all rights reserved");
if(@_GET["go"]) {
photo = img->upLoad("upfile");
img->maxWidth = img->maxHeight = 350;//設(shè)置生成水印圖像值
img->toFile = true;
newSmallImg = img->smallImg(photo);
newMark = img->waterMark(photo,text);
echo "<img src='".newSmallImg."' border='0'><br><br>";
echo "<img src='".newMark."' border='0'><br><br>";
echo "<a href='./test.php'>繼續(xù)上傳</a>";
} else {
?>
<form method="post" action="./test.php?go=go" enctype="multipart/form-data">
<input type="file" name="upfile"><br><br>
<input type="submit" value="上傳">
</form>
<?php
}
?>

來源:網(wǎng)絡(luò)

分享:初學PHP指導:php.ini 配置詳細選項
php.ini 或 php3.ini 是 PHP 在啟動時會讀取的配置文件。該文件的存放路徑為 /usr/local/lib/。在 PHP 3.x 版的配置文件為 php3.ini;而在 PHP 4.x 版改為 php.ini。若 PHP 安裝成服務(wù)器的模塊,則在 Web 服務(wù)器啟動執(zhí)行時會讀取,之后就不再讀取,因此改動

來源:模板無憂//所屬分類:PHP教程/更新時間:2012-07-01
相關(guān)PHP教程
久久国产成人| 97超碰人人看| 青青草原免费观看| 在线成人免费| 蜜臀a∨国产成人精品| 亚洲最新视频在线观看| 精品视频久久久| 国产综合动作在线观看| 男人添女人荫蒂国产| 亚洲精品18在线观看| 欧美精品18| 亚洲青青青在线视频| 欧美男插女视频| 国产成人一二三区| 亚洲精品久久久久久国| 亚洲精品自拍| 国产一区二区三区四区五区美女| 91精品国产综合久久精品app| 成人高h视频在线| 亚洲国产日韩欧美在线观看| 国产精品久久久久久免费免熟 | 91精品婷婷色在线观看| 香蕉影视欧美成人| 国产精品久久久久秋霞鲁丝| 中文字幕18页| 亚洲日日夜夜| 久久久噜噜噜久久人人看| 久久久精品视频成人| 国产中文字幕免费观看| hs视频在线观看| 好吊色视频一区二区三区| 日韩精品一区二区三区国语自制| 日韩欧美精品一区| 精品国产1区2区| 91精品在线观| 香蕉视频久久久| 国产精品久久久网站| 亚洲欧美综合另类在线卡通| 欧美一区二区.| 在线观看视频在线观看| 欧美aaa大片视频一二区| 成人精品小蝌蚪| 久久精品国产免费观看| www.xxx亚洲| 天天摸天天碰天天爽天天弄| 国产乱人伦精品一区二区在线观看 | 2020国产精品极品色在线观看| 欧美国产亚洲另类动漫| 欧美中文字幕在线观看| 亚洲成年人av| 天堂av一区| 17c精品麻豆一区二区免费| 日韩美女在线看| 久久精品综合视频| 全国精品免费看| 亚洲国产精品久久久久秋霞影院| 福利电影一区二区三区| 欧洲日韩一区二区三区| 久久综合中文色婷婷| 五月天婷婷丁香| 国产精品二区影院| 日韩一二三四区| 玖玖精品在线视频| 99视频国产精品免费观看a| 久久精品国产**网站演员| 亚洲人成在线观| 怡红院av亚洲一区二区三区h| 亚洲AV无码精品色毛片浪潮| 高清国产一区二区三区| 欧美国产日韩一区二区在线观看| 特级黄色片视频| 亚洲一区二区三区久久久| 国产精品女人毛片| 国产在线日韩在线| 翔田千里88av中文字幕| 狠狠综合久久| 精品伊人久久97| 成人中文字幕av| 欧美激情福利| 亚洲欧美色图小说| 91在线高清视频| 校园春色 亚洲| 影音先锋亚洲精品| 亚洲精品第一页| 欧美日韩中文字幕综合视频| 国产精品福利在线观看| 人人艹在线视频| 欧美激情视频一区二区三区免费| 精品国产91久久久久久久妲己| 久久久久久久中文| 99九九久久| a片在线免费观看| 99草草国产熟女视频在线| 日本一区二区三区免费视频| 亚洲在线视频| 亚洲小视频在线观看| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 91福利精品在线观看| 成人免费在线视频| 国产成人精品免费视频大全最热| 日韩特黄一级片| 日韩精品成人一区二区在线| 最近2019免费中文字幕视频三| 欧美日韩理论片| 中文字幕亚洲在线观看| 国产精品九九视频| 国产又粗又长又黄的视频| 日韩精品诱惑一区?区三区| 91精品国产一区二区| 亚洲韩国日本中文字幕| 久久久久免费网| 最近中文字幕在线观看| 97在线观看免费高| gogo人体一区| 在线视频欧美精品| 亚洲精品少妇一区二区| 亚洲www.| 亚洲一二三四区不卡| 日韩欧美视频一区二区| 午夜久久久久久噜噜噜噜| 国产日韩av一区二区| 99精品99久久久久久宅男| 亚洲欧美一二三区| k8久久久一区二区三区| 国产综合福利在线| 亚洲天堂日韩av| 精品一区二区三区影院在线午夜 | 久久久久久97三级| 豆国产97在线| 亚洲无码精品在线播放| 久久久久久久电影| 国产自产在线视频一区| 国产老妇伦国产熟女老妇视频| 久久综合九色综合欧美就去吻 | 国产一区免费在线观看| 国产伦一区二区| 国产欧美日韩中文久久| 久久青青草综合| 成人爽a毛片一区二区| 亚洲欧美日韩一区二区| 亚洲精品成人自拍| 国产a亚洲精品| 色先锋aa成人| 精品国产自在久精品国产| 国产成人av在线播放| 日本一区二区网站| 国v精品久久久网| 成人网中文字幕| 伊人网中文字幕| 日本一区二区三区四区| 欧美国产一区二区在线| 亚洲 国产 欧美 日韩| 亚洲aⅴ怡春院| 91网站在线观看免费| 久久久久久爱| 91精品国产色综合久久ai换脸 | 亚洲欧美一区二区激情| 国产精品无码在线| 亚洲免费精品| 久久久久久久久久久网站| 中文字幕在线2021| 国产精品一卡二卡| 91福利视频导航| 国产高清视频免费| 亚洲综合在线观看视频| 草b视频在线观看| 国产精品自在| 亚洲精品久久久久久久久久久久久 | 亚洲欧美天堂在线| 一区二区三区午夜视频| 欧美成人免费全部| 国产亚洲成人精品| 91女厕偷拍女厕偷拍高清| 精品在线观看一区二区| 巨茎人妖videos另类| 色菇凉天天综合网| 亚洲 国产 图片| 欧美一区综合| 欧美激情亚洲精品| 成人精品在线看| 国产欧美精品国产国产专区| 一区二区日本伦理| 一区二区三区自拍视频| 日韩精品有码在线观看| 色欲狠狠躁天天躁无码中文字幕 | 婷婷国产成人精品视频| 亚洲一区二区三区| 国模精品视频一区二区三区| 色狠狠久久av五月综合|| 中文字幕第3页| 亚洲精品社区| 欧美一区二三区| 特级西西444www高清大视频| 亚洲女人小视频在线观看| 国产一区 在线播放| 亚洲v天堂v手机在线| 自拍偷拍亚洲欧美| 美女视频黄免费| 久久综合久色欧美综合狠狠| 一区二区三区三区在线| 久久资源综合| 中文字幕精品—区二区| 国产一级片播放| av在线综合网| 亚洲欧洲精品一区二区| 风间由美中文字幕在线看视频国产欧美| 亚洲激情久久久| 妖精视频在线观看免费| 波波电影院一区二区三区| 小说区图片区图片区另类灬| 97久久亚洲| 在线播放精品一区二区三区 | 亚洲老头同性xxxxx| 朝桐光av在线| 国产午夜精品久久久久久免费视 | 欧美日韩亚洲自拍| 亚洲免费精品| 91日韩久久| 日本成人一区二区| 亚洲全黄一级网站| 日韩三级一区二区三区| 亚洲精品国产第一综合99久久 | 99精品视频在线观看免费播放| 欧美激情在线狂野欧美精品| 精品国产www| 色综合天天做天天爱| 日韩高清一二三区| 亚洲欧美精品aaaaaa片| 性欧美xxxx大乳国产app| 亚洲一区二区三| 国产一区二区三区朝在线观看| 日韩欧美中文字幕公布| 97精品在线播放| 国产亚洲欧美在线| 国产乱子伦农村叉叉叉| 亚洲香蕉网站| 91在线色戒在线| www 久久久| 中文字幕在线看视频国产欧美| 毛片视频网站在线观看| 亚洲福中文字幕伊人影院| 亚洲国产欧美91| 国产在线不卡一卡二卡三卡四卡| 色噜噜狠狠一区二区三区| 欧美男gay| 91po在线观看91精品国产性色| 欧美一级一区二区三区| 欧美成人video| 欧美卡一卡二卡三| 一级日本不卡的影视| 波多野结衣中文字幕在线播放| 国产在线精品国自产拍免费| 咪咪色在线视频| 亚洲视频电影在线| 91最新国产视频| 深夜福利亚洲| 久久久极品av| 亚洲一区二区天堂| 欧美久久一二三四区| 国产高潮流白浆| 亚洲欧美国产毛片在线| 成年人性生活视频| 国产99久久精品| 国产成人艳妇aa视频在线| 亚洲午夜av| 国产一区二区精品免费| 日韩一级电影| 日韩免费在线视频| 激情久久99| 精品中文字幕乱| 丰满少妇被猛烈进入| 亚洲精品久久久久久久久久久| 在线免费黄色av| 欧美亚洲动漫精品| 一区二区三区影视| 亚洲成人免费视| 日韩av一二区| 国产精品毛片大码女人| 久久无码人妻一区二区三区| 成人av在线观| 99视频在线免费| 国产伦精品一区二区三区在线观看| 波多野结衣av一区二区全免费观看| 99riav1国产精品视频| 四虎一区二区| 午夜精品国产| 欧美第一黄网| 午夜久久免费观看| 国产一区二区三区色淫影院| 国产成人高清| 96久久精品| 深爱激情久久| 亚洲xxxxx电影| 亚洲精华一区二区三区| 国产在线拍偷自揄拍精品| 丁香综合av| 国产精品丝袜一区二区三区| 日本在线视频播放| 国产 日韩 欧美 综合 一区| 91国产视频在线播放| 四虎国产精品免费久久5151| 久久久欧美精品| 久久不卡日韩美女| 欧美精品久久久久久久久| 成人国产网站| 午夜精品久久久久久久99热浪潮| 草民电影神马电影一区二区| 欧美放荡办公室videos4k| 福利一区二区免费视频| 午夜精品三级视频福利| 日韩黄色在线| 欧美中在线观看| 9999久久久久| 国产在线观看一区二区三区 | 欧美一二三区视频| 欧美女孩性生活视频| 国产美女激情视频| 欧美大片在线观看一区二区| 成人黄色片在线观看| 日韩精品有码在线观看| 亚洲精品一区二区三区四区| 日韩亚洲精品电影| av在线日韩| 91精品国产91久久久| 久久69av| 成人黄色短视频在线观看| 国产成人影院| 久草精品电影| 极品少妇一区二区三区| 国产精品波多野结衣| 蜜桃精品在线观看| 国产精品99久久免费黑人人妻| 不卡av在线免费观看| 性色av浪潮av| 亚洲私人黄色宅男| 91无套直看片红桃在线观看| 欧美性极品少妇| 波多野结衣视频网站| 日韩av在线播放资源| 日批视频在线播放| 久久久久久久香蕉网| gogo人体一区| 国产精品xxxx| 在线国产欧美| 男女猛烈激情xx00免费视频| 丁香天五香天堂综合| 无码人妻丰满熟妇啪啪网站| 亚洲精品欧美激情| 玖玖爱免费视频| 日韩欧美亚洲国产另类 | 国产精品亚洲成人| 奇米777在线| 亚洲精品伦理在线| 免费在线一区二区三区| 日韩精品在线看片z| 午夜免费福利视频| 久久久综合av| 日韩精品社区| 欧美激情第六页| 日韩二区三区在线观看| 亚洲 欧美 日韩系列| 综合婷婷亚洲小说| 国产精品xxx在线观看www| 国产成人77亚洲精品www| 国产精品羞羞答答| 亚洲天天综合| 91传媒免费视频| 成人av网址在线观看| 魔女鞋交玉足榨精调教| 日本韩国欧美国产| 中文字幕一区二区三区波野结| 久久韩剧网电视剧| 无人区乱码一区二区三区| 国产高清精品一区二区三区| 国产日韩视频| 欧美特级aaa| 亚洲黄色免费电影| 在线能看的av| 在线视频国产日韩| 精品国产一区二| 国产亚洲精品自在久久| 日韩电影在线一区二区三区| 91福利免费观看| 亚洲午夜激情网页| 国产91国语对白在线| 精品国偷自产在线| 国产精品乱战久久久| 人偷久久久久久久偷女厕| 黑人巨大精品欧美一区| 野战少妇38p| 欧美一a一片一级一片| 精品国产av一区二区三区| 日韩av高清不卡| 最新精品国产| 日韩黄色片视频| 亚洲狼人国产精品| 男人午夜免费视频| 久久69精品久久久久久国产越南| 无码日韩精品一区二区免费| 中文字幕人成一区|