簡體   English   中英

使用POST在網頁中包含動態圖像?

[英]Including a dynamic image in a web page using POST?

我編寫了一個CGI腳本,該腳本使用GET數據動態創建圖像。 為了將此圖像包含在我的網頁中,我使用以下代碼:

<img src="image.py?text=xxxxxxxxxxxxxx">

問題是我希望將來“文本”字段會很長並且URL會變得太大。 從谷歌搜索到,URL的長度似乎沒有固定的限制(即,取決於瀏覽器,服務器,代理等),是否有更好的方法來做到這一點?

如果這很重要,那么我正在使用Django和Python,並且不能使用任何客戶端腳本(即JavaScript)。

干杯本

將文本存儲在某個地方(例如數據庫),然后通過主鍵傳遞。

POST的結果將為您提供圖像-您可能不喜歡它

  1. 將iFrame放置在您要放置圖像的位置並調整其大小,然后移除滾動條
  2. 將src設置為一個表單,其中將隱藏輸入設置為post參數,將操作設置為將生成圖像的URL
  3. 在iFrame HTML的body.onload中使用JavaScript自動提交表單

    然后,要么:

  4. 向圖像提供內容類型集並流式傳輸圖像字節

    要么:

  5. 將post參數存儲在某個地方並生成一個小id

  6. 使用url中的id將帶有img標記的HTML投放回HTML-在服務器上查找post參數

    要么:

  7. 生成帶有帶有嵌入式圖像的圖像標簽的頁面

    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參數中的文本來緩解此問題。

從下面的鏈接看來,您會過一會兒;)

http://www.boutell.com/newfaq/misc/urllength.html

如果您使用的是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.

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