2009-07-21 32 views
0

我有一個Asp.Net頁面包含一個網格和圖像。該圖片是谷歌圖表圖表,其網址約爲1600個字符。我將包含網格和圖像的.htm文件放在一起。對於網格,我使用RenderControl來獲取它的html代碼,對於圖像,我只是添加一個img html標籤並將url分配給它的src。然後,我將這個.htm文件作爲電子郵件附件發送。Asp.net +谷歌圖表 - 附加的HTML文件將無法正確打開

我的問題是,當您嘗試打開附加文件時,除了圖像之外,您會看到一切正常(它不顯示任何內容,並且當您查看頁面的源代碼時,img標記不顯示任何src - 它只是顯示< img>(沒有空格)如果你在將它保存到磁盤後打開文件,那麼它一切正常,你會看到實際的img src。爲什麼?

這裏是我的html標題:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body> 

而這裏的形象:

<img src="http://chart.apis.google.com/chart?chd=t:0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,420.95,0.00,2725.25,0.00,0.00,0.00,0.00,5036.96,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,47.82|0.0000,7.97,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,4.98,1.99,2.24,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1.99,1.99|0.5100,34.04,0.00,0.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0.00,0.00,0.00,0.00,36.77,18.01,18.26,0.00,0.00,0.00,0.00,0.00,8.99,0.00,20.06,14.01|0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,2.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,4.00|3.0000,0.00,0.00,0.00,0.00,0.00,0.00,0.00,46.98,0.00,257.91,113.25,0.00,0.00,0.00,1.00,24.99,29.99,0.00,0.00,0.00,0.00,0.00,0.00,0.00,60.00,123.92|0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,45.00,0.00,0.00,0.00,0.00,0.00,0.00,20.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,84.00|0,55.99,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,65.99&chdl=Type 1|Type 2|Type 3|Type 4|Type 5|Type 6|Type 7&chco=000000,CD7F32,A62A2A,0000FF,00FF00,FF6EC7,A8A8A8&chds=0,5037&chxl=0:|6/22|6/23|6/24|6/25|6/26|6/27|6/28|6/29|6/30|7/1|7/2|7/3|7/4|7/5|7/6|7/7|7/8|7/9|7/10|7/11|7/12|7/13|7/14|7/15|7/16|7/17|7/18|1:|0|503|1006|1509|2012|2515|3018|3521|4024|4527|5037|2:|Days|3:|Amount ($)&chls=3,1,0|3,1,0|3,1,0|3,1,0|3,1,0|3,1,0|3,1,0&chm=o,990066,0,-1,6.0|o,990066,1,-1,6.0|o,990066,2,-1,6.0|o,990066,3,-1,6.0|o,990066,4,-1,6.0|o,990066,5,-1,6.0|o,990066,6,-1,6.0&chg=3.85,0&cht=lc&chs=900x300&chxt=x,y,r,t"/> 

如果問題是URL的大小,我的選擇是什麼,缺少構建PDF文件並附加它?看起來,一個html文件是我需要的,我想保持簡單。

回答

1

你肯定會看到一個長URL的問題。當我使用Google Charts API時,發生在我身上(儘管在Rails而不是ASP.NET中)。我從來沒有找到開始引起麻煩的確切的URL大小,但有些人報告從1024開始的麻煩。

谷歌提供了幾種不同的編碼類型,您可以使用輸入數據來縮小它,但使用任何其他而不是文本編碼(你在做什麼)會禁止你擴展數據的能力,如果你關心的話。

如果無法縮放數據,如果數據長時間保持最大值,或者要覆蓋具有不同比例的兩個圖形,則可能會看到一些醜陋的圖形。

data formats從谷歌圖表API文檔

+0

感謝cgyDeveloper。在這種情況下,我真的需要擴展。 我相信如果我得到了圖像流,附加了一個實際的.png到電子郵件並引用了html中的圖像,它應該工作正確嗎? – 2009-07-21 21:49:56

0

如果GET太長,你可以使用一個POST而不是你有一個16K的限制是綽綽有餘。我已經使用下面的代碼來生成你的圖表,它工作。所以是的,我想你可以使用這個帖子並將其附加到電子郵件中。也許使用GET的問題是配置爲不打開圖像文件的電子郵件客戶端的問題,您是否在其他客戶端測試了它?

<form action='http://chart.apis.google.com/chart' method='POST' id='post_form'> 
<input type="hidden" name="cht" value="lc" /> 
<input type="hidden" name="chtt" value="Demo chart" /> 
<input type="hidden" name="chg" value="3.85,0" /> 
<input type='hidden' name='chs' value='900x300' /> 
<input type="hidden" name="chxt" value="x,y,r,t" /> 
<input type="hidden" name="chds" value="0,5037" /> 
<input type="hidden" name="chxl" value="0:|6/22|6/23|6/24|6/25|6/26|6/27|6/28|6/29|6/30|7/1|7/2|7/3|7/4|7/5|7/6|7/7|7/8|7/9|7/10|7/11|7/12|7/13|7/14|7/15|7/16|7/17|7/18|1:|0|503|1006|1509|2012|2515|3018|3521|4024|4527|5037|2:|Days|3:|Amount ($)" /> 
<input type="hidden" name="chls" value="3,1,0|3,1,0|3,1,0|3,1,0|3,1,0|3,1,0|3,1,0" /> 
<input type="hidden" name="chm" value="o,990066,0,-1,6.0|o,990066,1,-1,6.0|o,990066,2,-1,6.0|o,990066,3,-1,6.0|o,990066,4,-1,6.0|o,990066,5,-1,6.0|o,990066,6,-1,6.0" /> 
<input type="hidden" name="chco" value="000000,CD7F32,A62A2A,0000FF,00FF00,FF6EC7,A8A8A8" /> 
<input type="hidden" name="chdl" value="Type 1|Type 2|Type 3|Type 4|Type 5|Type 6|Type 7" /> 
<input type='hidden' name='chd' value='t:0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,420.95,0.00,2725.25,0.00,0.00,0.00,0.00,5036.96,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,47.82|0.0000,7.97,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,4.98,1.99,2.24,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1.99,1.99|0.5100,34.04,0.00,0.00,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0.00,0.00,0.00,0.00,36.77,18.01,18.26,0.00,0.00,0.00,0.00,0.00,8.99,0.00,20.06,14.01|0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,2.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,4.00|3.0000,0.00,0.00,0.00,0.00,0.00,0.00,0.00,46.98,0.00,257.91,113.25,0.00,0.00,0.00,1.00,24.99,29.99,0.00,0.00,0.00,0.00,0.00,0.00,0.00,60.00,123.92|0,0.00,0.00,0.00,0.00,0.00,0.00,0.00,45.00,0.00,0.00,0.00,0.00,0.00,0.00,20.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,84.00|0,55.99,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,65.99'/> 
<input type="submit" />