php 多個檔案上傳(給圖片加浮水印執行個體)_PHP教程

來源:互聯網
上載者:User
php 多個檔案上傳(給圖片加浮水印執行個體)

php教程 多個檔案上傳(給圖片加浮水印執行個體)





php 多個檔案上傳(給圖片加浮水印執行個體)


if($_post['sub']=="www")
{
$waterimg="water.png";
$ftype=array('image/jpg','image/jpeg','imgage/png','image/pjpeg','image/gif');//允許上傳的檔案類型
$files=$_files['files'];
$fnum=count($files['name']); //取得上傳檔案個數
for($i=0;$i<$fnum;$i++)
{

if($files['name'][$i]!=''&&is_uploaded_file($files['tmp_name'][$i]))
{

if(in_array($files['type'][$i],$ftype))//判斷檔案是否是允許的類型
{

$fname[$i]='upfile/'.rand(0,10000).time().substr($files['name'] [$i],strrpos($files['name'][$i],'.'));//自動命名
move_uploaded_file($files['tmp_name'][$i],$fname[$i]);
echo '
檔案上傳成功!';

}
else
{
echo '
不允許的檔案類型!';
exit;
}
}
else
{
echo '
該檔案不存在!';
exit;
}
watermark($fname[$i],$waterimg);
}

$string=implode('|',$fname);
echo $string;
}

?>


再上傳一張
/**
* 為圖片加浮水印
* @param string $desimg 靶心圖表片 參數格式為 ./images/pic.jpg
* @param string $waterimg 浮水印圖片 參數格式同上,浮水印圖片為 png格式,背景透明
* @param int positon 浮水印地位 1:頂部居左 2:頂部居右 3:置中 4 :底部居左 5:底部居右
* @param bool $saveas 能否另存新檔,默許值false,默示籠蓋原圖
* @param int $alpha 浮水印圖片的不通明度
* @return string $savepath 新圖片的途徑
* **/
function watermark($desimg,$waterimg,$positon=1,$saveas=false,$alpha=30)
{
//擷取目圖片的根基資訊
$temp=pathinfo($desimg);
$name=$temp["basename"];//檔案名稱
$path=$temp["dirname"];//檔案地點的檔案夾
$extension=$temp["extension"];//副檔名
if($saveas)
{
//需要另存新檔
$name=rtrim($name,".$extension")."_2.";//從頭命名
$savepath=$path."/".$name.$extension;
}
else
{
//不需要另存新檔則籠蓋原圖
$savepath=$path."/".$name;
}
$info=getimageinfo($desimg);//擷取靶心圖表片的資訊
$info2=getimageinfo($waterimg);//擷取浮水印圖片的資訊
$desimg=create($desimg);//從原圖創立
$waterimg=create($waterimg);//從浮水印圖片創立
//地位1:頂部居左
if($positon==1)
{
$x=0;
$y=0;
}
//地位2:頂部居右
if($positon==2)
{
$x=$info[0]-$info2[0];
$y=0;
}
//地位3:置中
if($positon==3)
{
$x=($info[0]-$info2[0])/2;
$y=($info[1]-$info2[1])/2;
}
//地位4:底部居左
if($positon==4)
{
$x=0;
$y=$info[1]-$info2[1];
}
//地位5:底部居右
if($positon==5)
{
$x=$info[0]-$info2[0];
$y=$info[1]-$info2[1];
}
imagecopymerge($desimg,$waterimg,$x,$y,0,0,$info2[0],$info2[1],$alpha);
imagejpeg($desimg,$savepath);
imagedestroy($desimg);
imagedestroy($waterimg);
return $savepath;
}
/**
* 擷取圖片的資訊,width,height,image/type
* @param string $src 圖片途徑
* @return 數組
* **/
function getimageinfo($src)
{
return getimagesize($src);
}
/**
* 創立圖片,前往本錢範例
* @param string $src 圖片途徑
* @return resource $im 前往本錢範例
* **/
function create($src)
{
$info=getimageinfo($src);
switch ($info[2])
{
case 1:
$im=imagecreatefromgif($src);
break;
case 2:
$im=imagecreatefromjpeg($src);
break;
case 3:
$im=imagecreatefrompng($src);
break;
}
return $im;
}
?>



http://www.bkjia.com/PHPjc/444896.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/444896.htmlTechArticlephp 多個檔案上傳(給圖片加浮水印執行個體) php教程 多個檔案上傳(給圖片加浮水印執行個體) !doctype html public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.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.