我目前正在开发一个Web应用程序,需要一些帮助。
功能如下:连接到mysql数据库的网站。您需要选择两个品牌,然后通过相互关联的动态下拉菜单解决该品牌的产品。基于该选择,发生两个查询从数据库中选择颜色值,在文本字段中显示它们。 通过jquery,PHP和JSON解决。
现在我创建了一个部分,它将显示来自数据库中所选RGB值的颜色图像。 PHP需要使用来自DB的RGB值创建JPG图像并将图像保存在服务器上。
当我在php中实现imagecreate并将路径移交给jquery以将其分配给'“#target”时,我就会遇到问题。
我考虑过两种方式: a)动态生成图像,将其命名为1.jpg并在每个实例中覆盖图像。然后我遇到了浏览器缓存的问题,加载了上一个图像,尽管新图像已经存储在文件夹中。
b)生成新图像并保存它们以获得更好的性能,用RGB值命名(即151 | 50 | 22.jpg)并加载(如果已经存在),如果没有则创建,但是当变量为时我无法保存路径在PHP的imagejpeg()函数中?我可以保存i)路径元素和字符串'1.jpg'的组合,以及ii)由纯字符串构成的路径,但不是由文本和带有正确图像名称的变量组合而成的路径。 可以通过正确转义变量来完成它???
错误是: 警告:imagejpeg(images \ rgb \ 225 | 151 | 169.jpg):无法打开流:第39行的C:\ xampp \ htdocs \ COLOMETRIX \ get_swatch_1a.php中没有此类文件或目录
{“decision”:“images \ rgb \ 225 | 151 | 169.jpg”} 这是Json输出
代码如下:
<?php
$prod1 = $_GET['q'];
include('db_config.php');
// clear variables
$decision='';
$data='';
// select dataset
$result=$db->query("SELECT R, G, B, Get_Col, Selection
FROM farbdatenbank.farbdatenbank
WHERE Name ='".$prod1."' ")
or die($db->error);
$datensatz=$result->fetch_array(MYSQLI_ASSOC);
// define paths and filename
$file=$datensatz['Get_Col'];
$filename=$file.".jpg";
$path_rgb='images'.DIRECTORY_SEPARATOR.'rgb'.DIRECTORY_SEPARATOR.$filename;
if($datensatz['Selection'] == "Excel"){
// get color values
$R=$datensatz['R'];
$G=$datensatz['G'];
$B=$datensatz['B'];
//check if file already exists
if (file_exists($path_rgb) == true) {
$decision=$path_rgb;
}
else
{
// create new image
$im1=imagecreatetruecolor(150, 70);
$colim1=imagecolorallocate($im1, $R, $G, $B);
imagefill($im1,0,0,$colim1);
$old = 'images'.DIRECTORY_SEPARATOR.'rgb'.DIRECTORY_SEPARATOR.'zzz.jpg';
imagejpeg($im1,$path_rgb,100);
$decision=$path_rgb;
}
}
Else
{
$decision='images'.DIRECTORY_SEPARATOR.'pics'.DIRECTORY_SEPARATOR.$filename;
}
// build output array and encode in JSON format
$data=array("decision"=>$decision);
echo json_encode($data);
mysqli_close($db);
?>
感谢您的时间
迈克尔