PHP从Image变量上传文件

时间:2015-01-12 14:49:19

标签: php image upload

我的想法是上传一个与水印相结合的图像文件。这段代码需要像这样工作。在投资组合网站上,所有者通过我制作的CMS上传他想要出售的图像。但是因为他想出售图像,他希望它带有水印来到网站上。

所以我的想法,我让他上传原始图像,然后我通过$ _Files()将图像与水印相结合,再次成为一个图像并上传该图像。

现在是我的问题,我如何上传用PHP创建的图像我试图将其转换为Base64但没有运气。这是我的代码。

抱歉英文不好!

$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);


$filetype =  substr($target_file, -4);

if($filetype == ".gif") $image = @imagecreatefromgif($_FILES["fileToUpload"]["tmp_name"]);
if($filetype == ".jpg") $image = @imagecreatefromjpeg($_FILES["fileToUpload"]["tmp_name"]);
if($filetype == ".png") $image = @imagecreatefrompng($_FILES["fileToUpload"]["tmp_name"]);
if (empty($image)) die();
$watermark = @imagecreatefrompng('watermark.png');
$imagewidth = imagesx($image);
$imageheight = imagesy($image);
$watermarkwidth = imagesx($watermark);
$watermarkheight = imagesy($watermark);
$startwidth = (($imagewidth - $watermarkwidth)/2);
$startheight = (($imageheight - $watermarkheight)/2);
imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight);

file_put_contents($target_file, $image)

1 个答案:

答案 0 :(得分:1)

试试这个: imagejpeg($image, $target_file);imagepng($image, $target_file);imagegif($image, $target_file);