从PHP GD中的文件输出动画GIF

时间:2012-11-24 16:38:42

标签: php http file-io

我在网络无法访问的文件夹中有动画GIF图像。我想通过PHP GD输出该图像,但输出时,GIF是非动画的。

任何帮助?

2 个答案:

答案 0 :(得分:1)

而不是在PHP-GD中重新处理图像(您将以这种方式分配更多资源,而不是仅仅读取已存在的文件。

  1. 查看文件是否存在且可读
  2. 为预期输出设置适当的标题
  3. 将文件数据返回给客户端

    if (!is_readable($FILE)){
        exit('Undefined file');
    }
    
    header('Content-type: image/gif');
    echo file_get_contents($FILE);
    

答案 1 :(得分:0)

您使用“路由脚本”来访问此类图像(或任何类型的文件):

client->路由脚本 - >打开文件并转发内容 - >客户端

客户端请求这样的网址:http://your.domain/some/path/image.php?id=animation

使用类似的方法将文件内容输出到客户端:

<?php
    // some catalog (or database) where file-paths are kept
    $catalog = array(
        'animation' => '/path/to/animated_gif.gif';
    );

    // read which file the client wants to access
    $id = $_GET['animation'];

    // decide action on where that file is located physically
    if (!isset($catalog['id'])
    {
        // die with error message
        die('forbidden');
    }

    // send file content
    $success = readfile($catalog['id']);
    if (FALSE === $success)
    {
        // die with error message
        die('sorry, problems to give the file.');
    }

请注意,要使其工作,gif文件无法直接通过http服务器访问。本地脚本基于本地文件系统访问文件。因此,该脚本充当客户端请求的路由器。

在脚本中可以做各种奇特的事情:

  • 计算请求
  • 阻止未提交的请求
  • 修改你转发的内容
  • ......无限可能......