Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2018, 11:11   #1
TimSer
 
Регистрация: 20.06.2018
Сообщений: 5
Сообщение php отображение картинки с ftp

Добрый день. Пытаюсь отобразить картинку с ftp сервера путь к картинке хранится в БД. Через сам браузер вхожу на ftp нормально отображает, на сайте не хочет, если долбануть по нему пкм и открыть в новой вкладке изображение то всё нормально. подскажите пожалуйста как это можно исправить.
Пробовал через print, echo но пока что никак.

База данных (postgresql 9.3), ftp (filezilla server 0.9.60), php(5.6), на сам сайт через openserver по ip захожу (не физический ip).

Код:
<?

$conn = pg_connect("host=188.235.219.214 port=5432 dbname=postgres user=postgres password=postgres");

$conn_ftp = "ftp://ftp:ftp@188.235.219.214/";

$SearchPubl = pg_query($conn, "SELECT * FROM \"News\"");

echo '<img src="'.$conn_ftp.''.pg_result($SearchPubl,'0',"\"Img\"").'" width="50" height="70" align="center">';

?>

https://yadi.sk/i/H0CKCB3W3Y9sUk
https://yadi.sk/i/-MVXemiL3Y9sW5
https://yadi.sk/i/VAUH1X5Z3Y9sWV
https://yadi.sk/i/YjHgz4CA3Y9sWf
https://yadi.sk/i/d6yhWzg13Y9sWu

Последний раз редактировалось TimSer; 20.06.2018 в 11:19.
TimSer вне форума Ответить с цитированием
Старый 20.06.2018, 11:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

попробуйте все слеши в img src записать как /

и покажите, какая ссылочка получается в конечном HTML коде.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2018, 11:22   #3
TimSer
 
Регистрация: 20.06.2018
Сообщений: 5
По умолчанию

<img name="Ava" src="ftp://ftp:ftp@188.235.219.214/Admin/Primer/3iFAfB.jpg" width="50" height="70" align="center">
Вот такое html
TimSer вне форума Ответить с цитированием
Старый 20.06.2018, 11:44   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я подтверждаю, есть такая проблема.

даже банально взять такой файлик:
Код:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>

<body>
<img src="ftp://ftp.maths.tcd.ie/pub/images/Computer/star.jpg" />
</body>
</html>
чтобы увидеть, что картинка не отображается.
Браузеры в инструментах отладчика пишут, что "Subresource requests using legacy protocols (like `ftp:`) are blocked." в Яндекс.Браузер или "blockedrigin" в Хроме.
Т.о. это проблемы с безопасностью.
Как это победить - я не знаю.

можно, конечно, это попытаться обойти на PHP.
скачивайте картинки к себе на сервер и подставляйте в HTML.
либо скачивайте картинки и кодируйте их в base64 и полученный результат помещайте в HTML код (он, кстати, резко вырастет в размерах).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2018, 11:49   #5
TimSer
 
Регистрация: 20.06.2018
Сообщений: 5
По умолчанию

В base64 я тоже пробовал но там зачастую выходили рандомные буквы цифры(
На файлзиле не включен у меня TLS может ли это как то повлиять на это?
а можно ли как то с ftp в кэш браузера или куки копировать и от туда выводить?

Последний раз редактировалось TimSer; 20.06.2018 в 11:53.
TimSer вне форума Ответить с цитированием
Старый 20.06.2018, 17:05   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну ваще фтп как-то не предназначен для оперативной отдачи содержимого - так сказать на лету,
что мешает через http(s) ?

был один локальный проект - юзали картинки через фтп, наскока помню - все дело было в настройках ftp сервера

Последний раз редактировалось ADSoft; 20.06.2018 в 17:07.
ADSoft вне форума Ответить с цитированием
Старый 28.06.2018, 19:24   #7
TimSer
 
Регистрация: 20.06.2018
Сообщений: 5
По умолчанию

С настройками ftp всё оказалось нормально, путём проб и ошибок заработал такой скрипт
Код:
function data_url($file, $mime) 
{  
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents); 
  return ('data:' . $mime . ';base64,' . $base64);
}

echo '3) <br> <img src="'.data_url($file,'image/jpg').'"/><br>';

Последний раз редактировалось TimSer; 28.06.2018 в 19:35.
TimSer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
картинки, загруженные по ftp, не отображаются в библиотеке olgastaf1 WordPress и другие CMS 4 24.03.2017 16:23
отображение картинки по ссылке johny_03 Microsoft Office Excel 1 12.04.2014 01:08
отображение картинки ts-alan ASP.NET 1 16.12.2013 12:42
отображение картинки scriptolog Общие вопросы Delphi 16 25.11.2012 20:04
Отображение картинки на кнопке WPF. Загрузка картинки из ресурсов. Проблема с Uri. Casper-SC Общие вопросы .NET 0 27.06.2010 23:11