簡體   English   中英

如何使用CGI Perl在HTML中放置圖片?

[英]How to put a picture in HTML using CGI Perl?

我正在創建一個非常簡單的HTML表單。 我已經將該表格包含在CGI文件中。 我正在使用perl腳本。 我嘗試使用以下CGI腳本在我的表單中添加圖片:

print "<img src=picture1.jpg style=width:600px;height:300px;>";

問題在於表單中的圖片沒有顯示,但是我沒有收到任何錯誤,並且當我從瀏覽器訪問表單時,其他所有東西都可以正常工作。

問題的屏幕截圖

通過查看您的屏幕截圖,我會猜測指定為src='picture1.jpg'的圖像源或位置不正確。

可能的原因可能是:

  • 服務器上不存在文件picture1.jpg
  • 文件picture1.jpg在另一個目錄中

我敢打賭這是第二個問題。 您的CGI腳本很可能位於名為cgi-bin的目錄中,因此,使用src='picture1.jpg'可以在此cgi-bin目錄中查找圖片。

您是否真的確定圖片位於: cgi-bin/picture1.jpg 很有可能不會。

我猜圖片在其他地方,這意味着您必須為其設置正確的路徑,如以下示例所示:

img src='../picture1.jpg'

這意味着“向上一級目錄並查找picture1.jpg ”。

img src='../images/picture1.jpg'

這意味着:“向上一級目錄,在image目錄中查找picture1.jpg ”。

img src='/html/images/picture1.jpg'

這意味着:“轉到您網站的根目錄,找到html目錄,然后找到image目錄,最后picture1.jpg里面的picture1.jpg

根據服務器的目錄結構調整路徑后,該圖像應顯示在所需位置。 此外,如其他答案所述,您應始終正確設置HTML屬性的格式。

確保為屬性使用正確的格式

print "<img src='picture1.jpg' style='width:600px;height:300px;'>";

您需要在html中使用雙引號。

print q{<img src="picture1.jpg" width="600" height="300">};

表格中的圖片沒有顯示,但是我沒有任何錯誤

您在瀏覽器中沒有任何錯誤,但是您是否檢查了Web服務器錯誤日志?

您沒有說CGI程序和圖像都實際存儲在Web服務器上的位置,因此很難確定問題出在哪里,但是我希望Web服務器日志中出現錯誤,這將清除所有內容起來

如果我不得不猜測(我沒有,但是我還是要去!),我會說問題出在圖像的位置。 在Web服務器上設置CGI程序的一種常見方法是將某個目錄(通常稱為cgi-bin )指定為包含所有CGI程序的位置。 但是實際上,這意味着您對Web服務器說:“此目錄中的所有內容都是CGI程序-每當您在此目錄中請求資源時,都需要執行該程序並將結果返回給瀏覽器”。

因此,Web服務器認為該目錄中的所有內容都是CGI程序。 這意味着您不能將圖像文件放在此目錄中。 因為如果Web服務器收到對/cgi-bin/picture1.jpg的請求,它將認為picture .jpg是返回圖像的程序-因此它將嘗試執行圖像文件。 那不是正常工作,並且您的錯誤日志中會出現500錯誤。

您顯示給我們的代碼是這樣的:

print "<img src=picture1.jpg style=width:600px;height:300px;>";

因為您具有src=picture1.jpg ,所以Web服務器假定圖像文件位於當前目錄中-該目錄將是包含CGI程序的目錄。 因此,很有可能這就是我上面描述的問題。

另一個選擇是您已配置了Web服務器,因此具有特定擴展名(通常是.cgi )的任何內容都應視為CGI程序。 如果是這樣,那么我之前的解釋將不會解釋您的問題。 在這種情況下,很可能您只是錯誤地輸入了圖像文件的URL,並且在Web服務器錯誤日志中將收到404錯誤。

但是在兩種情況下,Web服務器錯誤日志中幾乎肯定會有更多有用的信息在等您。 請查看那里,並將詳細信息添加到您的問題中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM