【发布时间】:2011-11-15 10:00:00
【问题描述】:
我有一个从 python 生成的网页,它可以正常工作,使用:
print 'Content-type: text/html\n\n'
print "" # blank line, end of headers
print '<link href="default.css" rel="stylesheet" type="text/css" />'
print "<html><head>"
我想在这个网页上添加图片,但是当我这样做时:
sys.stdout.write( "Content-type: image/png\n\n" + file("11.png","rb").read() )
print 'Content-type: text/html\n\n'
print "" # blank line, end of headers
print '<link href="default.css" rel="stylesheet" type="text/css" />'
...
我得到的只是图像,然后如果我将图像代码放在我的 html/text 标题下方,我得到的只是图像中的文本,即:
<Ï#·öÐδÝZºm]¾|‰k×®]žòåËÛ¶ÃgžyFK–,ÑôéÓU½zuIÒ}÷ݧ&MšH’V¯^?üð¼1±±±zýõ×%IñññÚºu«*W®¬wß}W.—K3gÎÔÌ™ÿw‹Ú””I’¹w¤¥hdÒd½q÷X•Šˆ²m¿þfïÞ½*]º´éÈs;¥¤¤Ø¿ILLÔˆ#rÊ
另外,如果我尝试:
print "<img src='11.png'>"
我在浏览器中看到损坏的图像,直接浏览图像会产生 500 内部服务器错误,我的 apache 日志显示:
8)Exec format error: exec of './../../11.png' failed Premature end of script headers: 11.png
【问题讨论】:
-
不是向我们展示您的打印语句,而是向我们展示生成的 html 文件。
-
什么是文件/目录布局?看起来 Apache 正在尝试将您的 11.png 作为 CGI 脚本执行。您通常将 CGI 脚本存储在
/cgi-bin下,并将其他资源存储在其他地方。你有没有机会混合它们?
标签: python html http-headers cgi