2011-05-27 46 views
0

我已經使用Python和CGI寫了一些調查。我試圖使用正常的<img>標籤來顯示圖片,但即使 - 儘管圖片與我的cgi腳本位於相同的目錄中,但我的腳本無法顯示它。我也改變了頭這樣的:?如何在Python CGI頁面中加載/顯示圖片

print "Content-type: text/html; image/jpeg" 
print 
print """<html> 
<head> 
<title>You are going to be redirected</title> 
</head> 
<body bgcolor = #14b585> 
<br> 
<p align=center><font>Helloooo</font></p> 
<img src="cat.jpeg" alt="cat" width="304" height="228"/> 
<form action="./sample.py" method="post"> 
<p align=center><input type="submit" value="YES!" /></p> 
</form> 
</body> 
</html> 

「」」

爲什麼(這是一個很小的JPG文件)

+0

我們應該猜測剩下的代碼是什麼樣的嗎? – 2011-05-27 08:29:54

+0

我加了剩下的部分,希望它有幫助 – Hossein 2011-05-27 08:36:23

+0

在瀏覽器中顯示圖像的URL是什麼? – 2011-05-27 08:37:36

回答

2
print "Content-type: text/html; image/jpeg" 

不要改變h埃德爾。對於單個文檔,不能有多種內容類型(不包括多部分文檔,但瀏覽器不支持它們,而且格式不正確)。

您正在傳遞HTML文檔,並引用其中的圖像。該圖像將是一個單獨的請求和響應。

print "Content-type: text/html" 

或者,更好:

print "Content-type: text/html; charset=utf-8" 

(假設你使用的是UTF-8,你應該是)。

print """<html> 

您的Doctype丟失。這會引發怪癖模式,這是不可取的。您還有很多遺留的應用CSS代替的表示標記。

<img src="cat.jpeg" alt="cat" width="304" height="228"/> 

上下文暗示該圖像是裝飾性的,所以替代文本大概應該是""(見Alt texts in IMGS),但並沒有什麼不對的實際參考圖像。

But even-though the picture is in the same directory as my cgi script

由於HTML似乎沒問題。你需要檢查圖像是。

你可以通過直接輸入網址來達到圖像嗎?

當您嘗試時,Web服務器日誌會說什麼?

可能您的服務器被配置爲嘗試將目錄中的所有內容視爲可執行文件,無論文件擴展名是什麼,所以它可能試圖運行該圖像,就好像它是CGI程序一樣(它會顯然失敗)。如果是這樣,那麼你可以移動圖像或更改服務器的配置。

而且我剛剛注意到這一點評論:

I did this in my browser: localhost/cgi-bin/cat.jpg and it got an error, I checked the logs, it Exec format error: exec of '/home/hossein/public_html/cgi-bin/cat.jpg' failed

這就是正在發生的事情。移動圖像是最簡單的解決方案。

1

你的Apache配置爲使用cgi-bin目錄作爲CGI腳本文件夾,以便試圖從這個文件夾的Apache文件試圖執行它作爲一個CGI腳本。讓你的形象可見它移動到www/html等文件夾中的任何請求。

相關問題