我想在网站
之后调用dump文件夹中的图像我的image.php
页面如下所示:
<?php
header('Content-type: image/jpeg');
$jpg_image = imagecreatefromjpeg('Desert.jpg');
$white = imagecolorallocate($jpg_image, 73, 41, 236);
$font_path = 'OpenSans-Italic.TTF';
$text = $_GET['name'] ;
imagettftext($jpg_image, 25, 0, 75, 50, $white, $font_path, $text);
$image_url="dump/".rawurlencode(trim($text)).".jpg";
imagejpeg($jpg_image,$image_url);
readfile($image_url);
imagedestroy($jpg_image);
?>
我在主页中使用了一个Javascript,它将图像重定向到result.php
。
我的result.php
页面如下所示:
<html>
<body>
<img src="image.php?name=<?php echo $_GET['name']; ?>" />
</body>
</html>
现在我从image.php
调用图像,我想从转储文件夹中调用它。有什么帮助吗?
答案 0 :(得分:0)
我认为你不应该这样做。
1。)您可以直接在图片代码中使用$_GET['name']
。您不应该信任用户输入,因此如果您在图像中使用它,请首先过滤变量。
http://php.net/manual/en/function.filter-input.php
2。)在上传时生成该图像以提高性能会更好。每次浪费大量CPU时进行渲染。
因此,最好保存原始图像并构建缓存并在上传后转换图像,或者在方法中使用if来检查图像是否被缓存。
<?php
header('Content-type: image/jpeg');
$filename = rawurlencode(trim($text)).".jpg";
if(!is_file(__DIR__.'dump_cache/'.$filename)) {
$jpg_image = imagecreatefromjpeg('Desert.jpg');
$white = imagecolorallocate($jpg_image, 73, 41, 236);
$font_path = 'OpenSans-Italic.TTF';
$text = $_GET['name'] ;
imagettftext($jpg_image, 25, 0, 75, 50, $white, $font_path, $text);
$image_url="dump/".rawurlencode(trim($text)).".jpg";
imagejpeg($jpg_image,$image_url);
readfile($image_url);
.... here write file to your cache folder .....
imagedestroy($jpg_image);
} else {
echo file_get_contents(__DIR__.'dump_cache/'.$filename);
}
?>
像这样的东西。如果未从转储文件夹加载图像,请尝试使用__DIR__
添加完整路径。
这样的事情:
$image_url= __DIR__."/dump/".rawurlencode(trim($text)).".jpg";
如果它是同一个文件夹。
答案 1 :(得分:0)
这是您的results.php
。首先,它创建图像并将其保存到/ dump文件夹,然后呈现HTML。此时,图像将直接从/ dump文件夹加载。
<html>
<body>
<?php
$text = $_GET['name'] ;
$image_url="dump/".rawurlencode(trim($text)).".jpg";
// Check if the file doesn't exist, create it
if (!file_exists($image_url)) {
$jpg_image = imagecreatefromjpeg('Desert.jpg');
$white = imagecolorallocate($jpg_image, 73, 41, 236);
$font_path = 'OpenSans-Italic.TTF';
imagettftext($jpg_image, 25, 0, 75, 50, $white, $font_path, $text);
imagejpeg($jpg_image,$image_url);
imagedestroy($jpg_image);
}
?>
<img src="<?php echo $image_url; ?>" />
</body>
</html>
一旦这个原型工作,你就可以增加安全性。