【问题标题】:Serving Images to get a request提供图像以获取请求
【发布时间】:2012-09-03 10:41:49
【问题描述】:

我正在使用 CodeIgniter 休息控制器。我希望能够根据客户端发出的 GET 请求提供图像。

这是最好的选择,还是我应该只提供图像的链接并让客户自己下载? 如果我可以自己提供图片,我应该怎么做?

【问题讨论】:

  • Header("Location: $imgUrl") 在你的控制器中就可以了。
  • 您想从脚本直接将图像发送到浏览器吗?
  • 罗利克。是的,因为它是一个休息 api,客户端调用它来获取图像,所以能够直接提供服务会更好。

标签: php codeigniter rest get


【解决方案1】:

要使 CodeIgniter 设置正确的标头,您可以在控制器中执行此操作:

$this->output->set_content_type('jpeg')->set_output(file_get_contents('path_to_file'));

它会将图像内容作为文件输出(作为请求响应)。无需查看。

请注意,这是一些额外的开销,因为文件是由 PHP 处理的,而不仅仅是网络服务器 (Apache/Nginx)。仅当您需要在请求上包含一些业务逻辑时才有意义,例如日志记录或授权(尽管即使没有 PHP 也可以完成)。如果您只是输出图像,最好直接链接到文件并将 PHP 排除在外。

【讨论】:

  • 真的很感激。我更喜欢第二种选择。您能否让我知道如何设置图像文件的链接。其次,android和iphone上的应用程序是否可以下载它。是的,我想要身份验证。
  • @SaranshMohapatra 您必须自己完成完整的解决方案,因为我不知道您的路径是什么。另外,如果您喜欢,请接受该解决方案。
  • 不,我不希望用户知道路径。这就是为什么我在想是否有办法?
  • 那么你必须像上面的例子一样在 PHP 中加载和输出图像。您可以使用路由和控制器逻辑控制文件的路径。
  • 谢谢。还有一件事。变薄会改变图像的质量吗
【解决方案2】:

我认为您可以向客户端显示图像并给他们一个复选框以将图像下载为 Zip 文件。

this

【讨论】:

  • 不,我不想要一个 zip 文件。我只想要普通图片。
猜你喜欢
  • 2013-05-22
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
相关资源
最近更新 更多