Я пишу, чтобы написать скрипт 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 отображается в порядке.
Пожалуйста, укажите, что мне не хватает в коде для отображения изображения без каких-либо ошибок?
Вы должны указать URL-адрес атрибута <IMG>
src
который можно получить из браузера.
/home/zaman/ssdggraph/SSDGhistory.png
вряд ли удовлетворит это требование. (Вероятно, у вас должно быть нечто вроде http://path_known_to_webserver/SSDGhistory.png
).
Вероятно, вам также следует ознакомиться с концепциями веб-страниц и скриптов cgi. Я бы назвал CGI ", который отображает изображение", некоторую программу, на которую будет ссылаться в приведенном выше URL-адресе, и динамически выводит данные изображения, как только веб-страницы ссылаются на нее, и браузер запрашивает ее. Это может быть то, что вы имеете в виду, но это неясно.
Вы должны использовать тип контента, а затем пустую строку:
#!/bin/bash
echo "Content-type: image/png"
echo
cat /var/www/img/your-image.png