Загрузка изображения PNG через программу CGI не удалась с ошибками

0

Я пишу, чтобы написать скрипт cgi для отображения png-изображения в браузере. Когда пользователь нажимает кнопку "Отправить" на странице HTML, вызывается программа CGI для отображения изображения.

Но это не работает для меня. Сценарий пытается открыть изображение PNG в браузере, но изображение содержит следующее сообщение об ошибке

"The image "http://localhost/cgi-bin/image.sh?subbtn=Submit" cannot be  displayed, because it contains errors."

Ниже приведен фрагмент кода CGI.

!/bin/bash

echo "Content-type: text/html"
echo "Content-type: image/png"

echo ""

echo  "<html>"
echo "<body>"
echo "Hi"

echo "<img src="/home/zaman/ssdggraph/SSDGhistory.png" alt="DG-Reports">"
echo "</body>"
echo "</html>"

Если я удалю нижнюю строку из приведенного выше кода, тогда появится текст "DG-Reports" в alt секции из тега img src.

echo "Content-type: image/png"

Также, если я пишу один и тот же код на простой HTML-странице, изображение PNG отображается в порядке.

Пожалуйста, укажите, что мне не хватает в коде для отображения изображения без каких-либо ошибок?

  • 0
    Похоже, это вопрос программирования, предлагаю перейти на SO.
  • 1
    относительный путь, ваш веб-сервер не может получить доступ к файлу
Показать ещё 3 комментария
Теги:
cgi

2 ответа

2
Лучший ответ

Вы должны указать URL-адрес атрибута <IMG> src который можно получить из браузера.

/home/zaman/ssdggraph/SSDGhistory.png вряд ли удовлетворит это требование. (Вероятно, у вас должно быть нечто вроде http://path_known_to_webserver/SSDGhistory.png).

Вероятно, вам также следует ознакомиться с концепциями веб-страниц и скриптов cgi. Я бы назвал CGI ", который отображает изображение", некоторую программу, на которую будет ссылаться в приведенном выше URL-адресе, и динамически выводит данные изображения, как только веб-страницы ссылаются на нее, и браузер запрашивает ее. Это может быть то, что вы имеете в виду, но это неясно.

  • 0
    Спасибо, Антон. Решение работает для меня.
0

Вы должны использовать тип контента, а затем пустую строку:

#!/bin/bash
echo "Content-type: image/png"
echo
cat /var/www/img/your-image.png

Ещё вопросы

Сообщество Overcoder
Наверх
Меню