1

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

有什么帮助吗?

4

2 回答 2

1

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

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

    if (!is_readable($FILE)){
        exit('Undefined file');
    }
    
    header('Content-type: image/gif');
    echo file_get_contents($FILE);
    
于 2012-11-24T17:03:56.987 回答
0

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

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

客户端请求这样的 url: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.');
    }

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

在脚本里面可以做各种花哨的事情:

  • 计数请求
  • 阻止未预定义的请求
  • 修改你转发的任何内容
  • ... 无限可能 ...
于 2012-11-24T16:50:12.743 回答