我试图在我的图像上加一个水印,但是脚本找不到我的水印图像。我是动态地这样做的,所以每个用户在水印文件夹中都有一个水印。当尝试使用此代码时:
session_start();
$username = $_SESSION['_user_login'];
// Set the path to the image to watermark
$input_image = $targetPath.$newName;
// Read in the text watermark image
$watermark = imagecreatefrompng("../watermarks/$username.png");
什么都没发生。我试着打印用户名变量,它运行得很好。我甚至试着打印这张照片,它也能用。但是,当使用图像时,水印图像是永远找不到的。在我的日志中,我看到以下错误:
警告:imagecreatefrompng(./水印/..png) function.imagecreatefrompng:未能打开流:没有这样的文件或目录
我还是不明白。我做错了什么?
谢谢。
发布于 2010-11-15 15:00:57
您需要使用:
$watermark = imagecreatefrompng(dirname(dirname(__FILE__)) . "/watermarks/" . $username . ".png");
(在使用此方法之前,可以打印dirname(__FILE__)
以检查目录结构)。
发布于 2010-11-15 15:01:09
线索就在警告里:
imagecreatefrompng(../watermarks/.png)
它正在寻找一个名为.png
的文件,因此很明显,您的$username = $_SESSION['_user_login'];
并没有真正返回用户名,也没有正确地创建字符串。
您是否尝试过在字符串中使用大括号,比如:"../watermarks/{$username}.png"
?如果这不起作用,那么你的用户名就有问题了。
发布于 2010-11-15 15:01:40
$username似乎是空白的。因此,“imagecreatefrompng(./水印/..png)”
我建议先调试,确保您请求的文件路径是有效的。
session_start();
$username = $_SESSION['_user_login'];
// Set the path to the image to watermark
$input_image = $targetPath.$newName;
// Read in the text watermark image
$filestring = "../watermarks/$username.png";
echo "LOOKING FOR $filestring";
$watermark = imagecreatefrompng($filestring);
https://stackoverflow.com/questions/4185542
复制相似问题