【发布时间】:2009-07-06 09:08:30
【问题描述】:
我正在尝试为特定项目生成图像报告。每个项目都有一个唯一的项目编号,存储在变量 $pk 中。
在此,调用 images/$pk.jpg 和/或 screenshots/$pk.jpg 将显示当前项目页面的相关图像或屏幕截图。这在实际页面中可以正常工作,但在我的弹出报告中却不行。
对于一个文件,我希望在输出前将其修剪为 800px,而不存储结果文件。
此外,人们可以上传文件,所以我试图检索上传的所有以 png 结尾的文件的列表,并将这些文件中的每一个输出到浏览器。
以下是我的代码,但只输出了 html 标头。
我做错了什么?是不是误用了imagepng方法?
我的代码:
<?php
if (isset($_GET["pk"])) {
$pk = $_GET["pk"];
}
$con = mysqli_connect("localhost","user","pass", "db");
if (!$con) {
echo "Can't connect to MySQL Server. Errorcode: %s\n". mysqli_connect_error();
exit;
} {
echo "<h1>Image report for auction number: ".$pk. "</h1> \n";
$srcName = 'screenshots/'.$pk.'.png';
$info = getimageinfo($srcName);
$src = imagecreatefrompng($srcName);
$dest = imagecreate($info[0], min($info[1], 800));
imagecopy($dest, $src, 0, 0, 0, 0, $info[0], min($info[1], 800));
imagepng($dest);
imagepng('images/'.$pk.'.png');
$filesQuery = "SELECT FILENAME FROM FILES WHERE FILENAME LIKE %png%";
if ($getFiles = $con->prepare($filesQuery)) {
$getFiles->execute();
$getFiles->bind_result($FILENAME);
$files = array();
while ($getFiles->fetch()) {
$filename = array(
'FILENAME' => $FILENAME,
);
$files[] = $filename;
}
}
$filesList = '';
foreach ($files as $filenames) {
$imagepng($filenames['FILENAME']);
}
;
}
【问题讨论】: