
Beni kırmayıp watermark text resimeyazı basma özelliğini ekleyen egonomik.com blogundan arkadaşım Caner`e çok teşekkürler sağolsun haika bir iş çıkarttı ortaya şimdi phupload uygulamasından bahsedeyim
* Scipt yazarı: Scott Lucht (phphq.net)
* Veri tabanı, kurulum gerektirmez
* GPL lisanslı ücretsizdir (bedava
)* Yüklenecek dosyalara sınırlama getirebilirsiniz
* Yüklenecek dosya boyutunu belirleyebilirsiniz
* 1 ya da daha fazla dosya gönderimi yapılabilir
* İsterseniz dosyaları yeniden adlandırır
* İsterseniz dosya gönderimi için şifre koruması ekleyebilirsiniz
* Yüklenen resimlere yazı eklenir (watermark text)
Kurulum ve kullanım
Öncelikle index.php dosyasını notepad++ programı ile açın satır 134 ve 165 arası ayarların yapıldığı bölümdür
// Yüklenecek dosyanın en yüksek boyutu!
$max_file_size="1024";
// Çoklu yüklemede en yüksek boyut!
$max_combined_size="2048";
//Sayfada kaç tane yükleme kutusunun görüneceğini belirler
$file_uploads="2";
//Tarayıcının araç çubuğunda görünen isim
$websitename="phUploader 1.2";
// Yüklenen dosyaların ismini değiştirir "true: açık" "false: kapalı"
$random_name=true;
// İzin verilen dosya uzantıları
$allow_types=array("jpg","gif","png","zip","rar","txt","doc");
// Yüklemelerin yapılacağı klasör
$folder="./uploads/";
// /home/cesur/public_html/upload/uploads/
// Phupload`ın bulunduğu klasörün, bölümün tam adresi
$full_url="http://localhost/g2/uploads/";
// Sunucunun tam yolu "home/cesur/public_html/upload/uploads/" şeklinde
// boş bırakıncada script çalışıyor çalışmaz ise kullanırsınız
$fullpath="";
//Dosya göndermek için şifre belirlenen bölüm
$password="";İşte ayarlar bu kadar gerekli değişiklikleri yaptıktan sonra dosyaları sunucunuza gönderiyorsunuz dosya klasörüne (uploads) chmod777 değerini veriyorsunuzPHP ile resime yazı basma watermark text modifikasyonu
Canerin eklediği fonksiyonlar satır 71 – 128 arası
// Watermark fonksiyonu
function watermarkImage ($SourceFile, $WaterMarkText, $DestinationFile, $uzanti) {
list($width, $height) = getimagesize($SourceFile);
$image_p = imagecreatetruecolor($width, $height);
switch ($uzanti) {
case jpg:
$image = imagecreatefromjpeg($SourceFile);
break;
case gif:
$image = imagecreatefromgif($SourceFile);
break;
case png:
$image = imagecreatefrompng($SourceFile);
break; }
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width, $height);
$black = imagecolorallocate($image_p, 0, 0, 0);
$white = imagecolorallocate($image_p, 255, 255, 255);
$font = 'fonts/corbelz.ttf'; // Yazı biçimi
$font_size = 14; // Yazı büyüklüğü
// Copyright metninin altına siyah zemin rengi ekleyebilirsin "$black"
// imagefilledrectangle($image_p, 0, ($height-30) , $width, $height, $black);
// Burdaki "$width-15" değerini mıncıklayabilirsin, metin uzun olunca konum kayabiliyor.
$leftTextPos = (($width-15) - imagefontwidth($font_size)*strlen($WaterMarkText));
// Yazı ve gölge
imagettftext($image_p, $font_size, 0, $leftTextPos, $height-9, $black, $font, $WaterMarkText);
imagettftext($image_p, $font_size, 0, $leftTextPos-1, $height-10, $white, $font, $WaterMarkText);
if ($DestinationFile<>'') {
switch ($uzanti) {
case jpg:
imagejpeg ($image_p, $DestinationFile, 75); // jpg çıktı kalitesi %75 boyut küçülür
break;
case gif:
imagegif ($image_p, $DestinationFile, 75); // gif çıktı kalitesi %75 boyut küçülür
break;
case png:
imagepng ($image_p, $DestinationFile);
break;
}
}
else {
header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 100);
}
imagedestroy($image);
imagedestroy($image_p);
}
// Watermark text
$watermark_text = $_POST['watermark'];Satır 307 — 314 arası$uzanti=get_ext($file_name[$i]);
$watermark_types = array("jpg","gif","png");
if(in_array($uzanti, $watermark_types)) {
$SourceFile = "$folder/$file_name[$i]";
$DestinationFile = "$folder/$file_name[$i]";
$WaterMarkText = "$watermark_text";
watermarkImage($SourceFile, $WaterMarkText, $DestinationFile, $uzanti); }Son olarak satır 505 ve 508<tr>
<td class="table_body" width="20%"><b>Watermark:</b> </td>
<td class="table_body" width="80%"><input type="text" name="watermark" size="29" value="Copyright © 2009" onclick="this.value=''" /></td>
</tr>Tarayıcıdaki görünümü
Script bu hali ile “Watermark:” bölümünde yazılı olanı (Copyright © 2009) resime yazıyor kullanıcı isterse yazıyı değiştirebilir bu şekilde kullanmak istemezseniz yani yazı sabir olsun kullanıcı değiştirmesin o zaman 505 ve 508 arası kodları silin satır 91`e aşağıdaki kodu ekleyin
$WaterMarkText = 'yyy.com';yazıyı istediğiniz gibi değiştirin genelde site adresi olur

İp uçları öneriler
Dosya yüklendikten sonra yüklendiği bölümün adresi tıklanabilir açık bağlantı olarak veriliyor

Tıklamayı iptal edebilirsiniz ya da bağlantıya başka şeyler ekleyebilirsiniz mesela img tagları ben forumda kullanmak için
[img]http://site.com/xxxx/uploads/xxx.jpg[/img]şeklinde bağlantı çıktısı ayarladım bunun için satır 466 da bulunan kodu düzenleyebilirsiniz
Echo("<b>File #".$file.":</b> <a href="".$full_url.$file_name[$i]."" target="_blank">".$full_url.$file_name[$i]."</a><br /><br />n");Bağlantı tıklanabilir olmasın derseniz aşağıdaki kodları kullanınEcho("<b>File #".$file.":</b> $full_url$file_name[$i]<br /><br />n");Bağlantıların içine farklı bir kod eklemek isterseniz (örnek img) aşağıdaki kodu kullanınEcho("<b>File #".$file.":</b> [img]$full_url$file_name[$i][/img]<br /><br />n");Script güvenli olsada ek olrak koruma yapmakta fayda var uploads klasörüne boş bir index.html doyası ekleyin ayrıca izin verdiğiniz dosyaları belirledikten sonra birde .htaccess dosyası ile istenmeyen uzantılara kısıtlama getirin özellikle teklikeli olabilecek dosyalaraUpload klasörüne eklenecek olan .htaccess dosyasının içeriği
<FilesMatch ".(inc|php)$"> deny from all </FilesMatch> <FilesMatch ".(inc|htm)$"> deny from all </FilesMatch> <FilesMatch ".(inc|html)$"> deny from all </FilesMatch>Phupload uygulamasının modifiye hali: phupload-watermark-text.zip ayrıca Caner`in watermark ile ilgili yazılarına bakmanızda fayda var