【问题标题】:Outputting an image from the same PHP file which also receives & sends JSON从同样接收和发送 JSON 的 PHP 文件输出图像
【发布时间】:2012-01-08 08:18:53
【问题描述】:

好的,我希望我能解释一下我的情况,而不是粘贴一行又一行的代码。

目前,JSON 将位置信息发送到我的 PHP 文件,该文件又使用此数据生成图像,保存并通过 JSON 将文件名返回给浏览器。 Javascript 然后刷新屏幕上的图像。

目前一切正常,但我想优化流程并研究在创建图像文件后直接输出然后保存的可能性。

我理想的解决方案是这样的:

    header('Content-Type: image/gif');
    echo $this->canvas;

    // Save user file
    $this->canvas->writeImage( $this->userFile = 'user_img.gif' );          
    $this->canvas->destroy();

    // encode everything and send to browser
    echo json_encode(array('misc data back to the browser'));

(我仍然需要通过 JSON 将数据发送回浏览器)

在我的 HTML 中,图像的布局如下:

    <img src='json-processing-script.php' />

但像往常一样,没有什么是那么简单的,所以我想听听是否有人可以提出任何建议。

【问题讨论】:

    标签: php json imagemagick gd imagick


    【解决方案1】:

    在您的示例中,json 将被添加到 gif 中,从而弄乱您的图像。如果你想从你的 php 脚本中返回这两个完全不同的东西,你必须对图像进行编码,将其添加到 json 中并在 javascript 中提取它以获取图像的来源。

    参见例如this question

    【讨论】:

    • 没有我想要的那么理想,但无论如何值得测试,谢谢你的建议。
    • @Will 至少为访问者节省了一次到服务器获取图像数据的行程;这是我认为花费最多的时间。
    • 您的建议在现代浏览器中运行良好,但在早期版本的 IE 中却不行。有像dean.edwards.name/weblog/2005/06/base64-ie 这样的“变通办法”,但它仍在调用服务器上的文件..
    • @Will 让它适用于新的浏览器,而对于旧的 IE 有更长的延迟会对我有用...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多