[英]Including a dynamic image in a web page using POST?
我編寫了一個CGI腳本,該腳本使用GET數據動態創建圖像。 為了將此圖像包含在我的網頁中,我使用以下代碼:
<img src="image.py?text=xxxxxxxxxxxxxx">
問題是我希望將來“文本”字段會很長並且URL會變得太大。 從谷歌搜索到,URL的長度似乎沒有固定的限制(即,取決於瀏覽器,服務器,代理等),是否有更好的方法來做到這一點?
如果這很重要,那么我正在使用Django和Python,並且不能使用任何客戶端腳本(即JavaScript)。
干杯本
將文本存儲在某個地方(例如數據庫),然后通過主鍵傳遞。
POST的結果將為您提供圖像-您可能不喜歡它
在iFrame HTML的body.onload中使用JavaScript自動提交表單
然后,要么:
向圖像提供內容類型集並流式傳輸圖像字節
要么:
將post參數存儲在某個地方並生成一個小id
使用url中的id將帶有img標記的HTML投放回HTML-在服務器上查找post參數
要么:
生成帶有帶有嵌入式圖像的圖像標簽的頁面
http://danielmclaren.net/2008/03/embedding-base64-image-data-into-a-webpage
將已經說過的內容放在一起,如何創建兩個頁面。 提交帶有text = xxxxxxx ...參數的表單(讓我們說create_img.py)時,第一頁發送POST請求。 然后,create_img.py使用text參數並創建一個圖像,並將其插入數據庫(或文件系統引用),然后在渲染第二頁時,生成img標簽,例如<img src="render_img.py?row_id=0122">
。 此時,render_img.py只需查詢db以獲取給定的圖像。 在創建圖像之前,您可以檢查它是否已經存在於數據庫中,因此可以使用相同的text參數重新使用/回收以前的圖像。
好的,我參加聚會有點晚了,但是您可以混合使用MHTML(適用於IE7及以下版本)和數據URI方案(適用於所有其他現代瀏覽器)。 它確實需要在客戶端和服務器上進行一些工作,但是最終您可以
newimg.src = 'blah';
有關如何執行此操作的文章,請參見http://gingerbbm.com/?p=127 。
img的使用GET。 您將不得不提出另一種機制。 如何在image.py中調用相同的功能並將文件另存為您在img標簽中引用的臨時文件呢? 或者,在呈現此img標簽期間,將row_id用作傳遞到image.py腳本的內容,如何在db行中保存文本值?
您可以通過壓縮get參數中的文本來緩解此問題。
從下面的鏈接看來,您會過一會兒;)
如果您使用的是django,也許您可以通過模板標簽來代替呢?
就像是:
<img src="{% create_image "This is the text that will be displayed" %}">
create_image函數將使用偽/隨機/生成的文件名創建映像,並返回路徑。
這避免了必須對腳本進行GET或POST,並且圖像將具有可管理的文件名。
我可以看到這種方法有一些潛在的問題,我只是把這個想法拋諸腦后;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.