繁体   English   中英

Zend Framework:img src标签中的PHP脚本导致图像损坏

[英]Zend Framework: PHP script in img src tag causing broken image

我在版本1.11的Zend Framework项目中使用JpGraph库。 我试图通过在src字段中包含一个php脚本来使用img标签显示某些数据的图形,如下所示:

echo "<img src='vgraph.php?param1=val1&param2=val2...

当我这样做时,唯一显示为图像的是我的浏览器的默认损坏图像。 由于Zend中的典型URL被视为控制器动作对,因此我所包含的文件路径也被视为控制器动作对。 为了调查为什么我没有得到我的图像,我在浏览器中查看了页面的来源。 当我单击上面的img标签的链接时,我被定向到包含错误的页面:

Invalid controller specified (vgraph.php)

我决不打算将脚本用作控制器。 仅应显示图形图像。 我不确定如何确保Zend仅使用文件的输出作为图像,而不使用其路径作为URL。

这是我用于图像的文件vgraph.php

<?php

/* graph the vital data */

require_once( 'path/to/Zend/project/web/library/jpgraph/jpgraph.php' ); 
require_once( 'path/to/Zend/project/web/library/jpgraph/jpgraph_line.php' );

/* get the needed parameters */
$id = $_GET['param1'];
$type = $_GET['param2'];
$from = $_GET['param3'];
$to = $_GET['param4'];

$graph = new Graph( $width, $height );

/* create the data and plot */
$obj = new CcFunc_VitalSigns();
$vitals = $obj->getVitalData( $id, $type, $from, $to );

/* configure everything */
$graph->setScale( 'intint' );
$graph->title->Set( "Graph of " . $type );
$graph->xaxis->title->Set( "X-Axis" );
$graph->yaxis->title->Set( "Numerical Value" );

$lp = new LinePlot( $vitals );
$lp->setColor( 'blue' );    
$lp->setWeight( 5 );

/* add the plot to the graph */
$graph->Add( $lp );

/* display the graph */
$graph->Stroke();

file, but I was met with the same problem, even after adding a RewriteRule to apache to prevent redirection of .png files. 注:我已经尝试过其他解决方案,比如图形流传输到png文件,并让src文件的URL,但我遇到了同样的问题,甚至添加后RewriteRule给了Apache,防止重定向.png文件。 我已经将此方法确定为最舒适(潜在)的解决方案。

a controller, and is actually located in path/to/Zend/roject/web/application/scripts/views . 编辑:我以前没有说过,但是回显img标签的代码控制器,并且实际上位于path/to/Zend/roject/web/application/scripts/views 脚本vgraph.php位于path/to/Zend/project/web/library

您需要将vgraph.php文件移动到您的公用文件夹中,才能正常工作,浏览器无法查看该文件之外的文件。

将其移动到path/to/Zend/project/web/public/vgraph.php ,将img标记更改为<img src="/vgraph.php?param1=val1&param2=val2...然后一切都会按预期进行。

链接时,请尝试在视图中将完整路径指定为:

<?php echo $this->baseURL();?> 

Zend View助手

这将返回localhos / [APP] /

希望这可以帮助

尝试将所有内容放在generateAction方法内的Graph控制器中,您可以链接到它:

<a href="<?php echo $this->baseURL();?>/graph/generate/?param1=val1&param2=val2...">Generate</a>

尝试显示来自 PHP 脚本的回显图像和 ` <img src="“…”`" tag< div><div id="text_translate"><p> 目标:</p><p> 1)我在 web 根目录之外有一个图像文件夹,其中放置了来自 web 应用程序的所有图像(每个图像路径都保存在数据库表中);</p><p> 2) 我想根据用户的请求获取该图像。</p><p> 很简单,对吧?</p><p> 我做了:</p><p> a) 创建一个 class 来读取图像(具有我记得的所有安全功能和保护措施)。 它(成功地)返回使用相应的 mime 类型编码(base64)的图像。</p><p> b) 出于演示目的,我创建了一个 index.php,它具有:</p><p> &lt;img src="agivenscript.php?img=name.jpeg"&gt;</p><p> 我在这里唯一的目标是从我的 web 应用程序中的任何其他地方调用一个脚本,该脚本输出具有相应 mime 类型的 base64 编码图像。</p><p> c) 创建了一个脚本“agivenscript.php”,它通过 GET 接收图像名称,实例化我的 class 并在一切顺利时获取 base64 编码图像。 然后它与图像相呼应。</p><p> 怎么了:</p><ul><li> 当我做 output - 使用 echo '&lt;img src="'. $output64encodedwithmimetype. '"&gt;'; - 在 agivenscript.php 中,它就像一个魅力;</li><li> 此外,如果我将 $output64encodedwithmimetype 内容直接放在 index.php 的 src 标记中,它也可以工作。</li><li> 但是,当我尝试&lt;img src="agivenscript.php?img=name.jpeg"&gt;时它不起作用。</li></ul><p> 由于 base64 编码的图像显然很好(并且具有 mime 类型),我错过了什么? 任何想法?</p><p> 预先感谢。</p></div>

[英]Trying to display an echoed image from a PHP script in and `<img src=“…”` tag

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 尝试显示来自 PHP 脚本的回显图像和 ` <img src="“…”`" tag< div><div id="text_translate"><p> 目标:</p><p> 1)我在 web 根目录之外有一个图像文件夹,其中放置了来自 web 应用程序的所有图像(每个图像路径都保存在数据库表中);</p><p> 2) 我想根据用户的请求获取该图像。</p><p> 很简单,对吧?</p><p> 我做了:</p><p> a) 创建一个 class 来读取图像(具有我记得的所有安全功能和保护措施)。 它(成功地)返回使用相应的 mime 类型编码(base64)的图像。</p><p> b) 出于演示目的,我创建了一个 index.php,它具有:</p><p> &lt;img src="agivenscript.php?img=name.jpeg"&gt;</p><p> 我在这里唯一的目标是从我的 web 应用程序中的任何其他地方调用一个脚本,该脚本输出具有相应 mime 类型的 base64 编码图像。</p><p> c) 创建了一个脚本“agivenscript.php”,它通过 GET 接收图像名称,实例化我的 class 并在一切顺利时获取 base64 编码图像。 然后它与图像相呼应。</p><p> 怎么了:</p><ul><li> 当我做 output - 使用 echo '&lt;img src="'. $output64encodedwithmimetype. '"&gt;'; - 在 agivenscript.php 中,它就像一个魅力;</li><li> 此外,如果我将 $output64encodedwithmimetype 内容直接放在 index.php 的 src 标记中,它也可以工作。</li><li> 但是,当我尝试&lt;img src="agivenscript.php?img=name.jpeg"&gt;时它不起作用。</li></ul><p> 由于 base64 编码的图像显然很好(并且具有 mime 类型),我错过了什么? 任何想法?</p><p> 预先感谢。</p></div> 图像未使用 img src 标签显示在 php 中 将图像从img标签的src上传到php 在标签中回显图像文件<img src="">在 php 中 使用php获取图像 我该怎么走 使用当前数据参数在img src标签中添加PHP脚本 如何在元标记html中添加img src(使用php脚本) 是否有可能阻止php脚本在img src标签中运行? Zend框架脚本标记
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM