首页 > 解决方案 > 从 FTP 获取图像而不在本地保存并打印

问题描述

我正在尝试从 FTP 服务器获取图像并在之后打印它而不将其保存在本地。我的问题是,图像可能是某种加密形式,或者是二进制,老实说我不知道​​。

这是我到目前为止的代码:

public function getImagePreview($imageName){
  if(ftp_get($this->connection, "php://output", "web/media/images/".$imageName, FTP_BINARY)){
    $data = ob_get_contents();
    $dataSize =  ob_get_length();
    ob_end_clean();
    return array('data' => $data, 'size' => $dataSize);
  }else{
    return false;
  }
}

这是我从文件调用的一个对象内部的一种方法,这是我试图显示图像的代码。

此行用于获取图像(调用上面的函数),但它是一个不同的 PHP 文件!这是一个视图文件。

require_once "../objects/ftpm.php";
$ftpM = new FTPManager();
$image = $ftpM->getImagePreview($imageName);

在这里,我正在尝试打印图像。

<span> Preview </span>
<img class="materialboxed" width="650" src="<?php echo $image["data"]; ?>"/>

但它实际上显示了大量的代码(我只展示了几行作为示例,因为它非常长):

����JFIFdd��Duckyd��Adobed������Ul��� u!"1A2# QBa$3Rq�b�%C���&4r ��5'�S6��DTsEF7Gc( UVW������d�t��������)8f�u*9:HIJXYZghijvwxyz��������������������������� ������������������������������m!1"AQ2aqB�#�R�b3 �$��Cr��4% ��ScD�&5T6Ed' s��Ft����UeuV7��������)��������������(GWf8v��������gw ��������HXhx��������9IYiy�������� :JZjz����������?��������^��׽��u

标签: php

解决方案


$ftpM = new FTPManager();
$image = $ftpM->getImagePreview($imageName);
$type = 'jpeg'; // file type here
header("content-type: image/{$type}");
echo $image['data'];

推荐阅读