Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从FTP获取图像而不在本地保存并打印_Php - Fatal编程技术网

Php 从FTP获取图像而不在本地保存并打印

Php 从FTP获取图像而不在本地保存并打印,php,Php,我正在尝试从FTP服务器获取图像,然后在不保存到本地的情况下打印它。我的问题是,图像可能是某种加密的形式,或者是二进制的,老实说,我不知道 到目前为止,我确实掌握了以下代码: public function getImagePreview($imageName){ if(ftp_get($this->connection, "php://output", "web/media/images/".$imageName, FTP_BINARY)){ $data = ob_get_c

我正在尝试从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��达克伊德�� Adobed������保险商实验室���  u!“1A2#QBa$3Rq�B�%C���&4r��5'�中六��DTsEF7Gc(UVW�����D�T��E�����)8f�u*9:HIJXYZGHJVWXYZ�������������������������������������������������������m!1英寸AQ2aqB�#�R�b3�$��铬��4%�ScD�&5T6Ed's��英尺����UeuV7��������)��������������(GWf8v)��������吉瓦��������HXhx��������9IYiy��������:JZjz���������� ?��ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׽��U�~��{ߺ�^��׈�ߺ�Pq�uHRh�����׺F�b1��ޖ��x%w>y美元�{�M]^���乌兹�凯马��{��^�>���׺VIG�����L�J���Sn8���{��L��W�'��2.��血红蛋白���2.�׺a�9s9�Zq9ZX�Q���啊!���j&�U��我��6ߺ�K��0�s�]T�吉伊֊/�>o=\�-埃博�_�{�=NR z$�T����5%|�(J)�����J� ���X�#�����{�/%哦����� rX(Q�b=��T� �N�一、 F�Lg���6.�@��e] Ib����/��{��E�Ʀ@�1hI“G���44�T�A.��������׺k�����(��\R�Z2Y������>�o��{�^�7SUG)ED2���&���F�L� ^_�Z�U��׺*j�)�H�����2.����#��� e1�Z����=��t1�我�|5-VJ�9ni%�Ti$Q��X��UTF����~~��׺Y���WӭM$�嗯��&���C��0������~��4U;N�^$E{8


谢谢任何帮助!

你不能在HTML文档中间放置一个不同的标题。。它似乎试图以图像文件的形式打开整个PHP页面。Chrome也做了同样的事情。@Quentin我把它放在了页面的页眉中。@Quentin我不知道是否有其他方法可以直接显示流到图像源中而不创建文件。唯一的解决方法是用内容类型页眉显示图像。@JanKočva但是这个页面是一个HTML文档。声称整个页面是JPEG是没有帮助的。
$ftpM = new FTPManager();
$image = $ftpM->getImagePreview($imageName);
$type = 'jpeg'; // file type here
header("content-type: image/{$type}");
echo $image['data'];