2009-07-21 5 views
0

J'ai une page Asp.Net contenant une grille et une image. L'image est un graphique de google charts et ses URLs sont autour de 1600 caractères. J'ai sorti ensemble un fichier .htm contenant la grille et l'image. Pour la grille, j'utilise RenderControl pour obtenir son code html, et pour l'image, je viens d'ajouter une balise img html et d'assigner l'URL à son src. J'envoie ensuite ce fichier .htm en pièce jointe.Asp.net + Google Charts - Le fichier html attaché ne s'ouvrira pas correctement

Mon problème est que lorsque vous essayez d'ouvrir le fichier joint, vous voyez tout ok, sauf l'image (il ne montre rien et quand vous regardez le code source de la page, la balise img ne montre pas n'importe quel src - il montre juste < img> (sans les espaces) .Si vous ouvrez le fichier après l'avoir sauvegardé sur le disque, alors tout fonctionne bien et vous voyez l'imr src réel Pourquoi ???

Voici mon en-tête 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> 

Et voici l'image:

<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"/> 

Si le problème est la taille de l'URL, quels sont mes choix, à court de construire un fichier pdf et de l'attacher? Il semble qu'un fichier html est tout ce dont j'ai besoin et je voudrais le garder simple.

Répondre

1

Vous pourriez certainement voir un long problème d'URL. Cela m'est arrivé lorsque j'utilisais l'API Google Maps (bien que dans Rails plutôt qu'ASP.NET). Je n'ai jamais pu trouver la taille d'URL exacte qui a commencé à causer des problèmes, mais certaines personnes ont signalé des problèmes à partir de 1024.

Google propose deux types de codage différents que vous pouvez utiliser pour réduire les données d'entrée, mais en utilisant d'autres types de codage. que l'encodage de texte (ce que vous faites) va désactiver votre capacité à mettre à l'échelle les données, si cela vous intéresse.

Si vous ne pouvez pas mettre à l'échelle les données, vous pouvez obtenir des graphiques laids si les données restent au maximum pour les longues périodes ou si vous souhaitez superposer deux graphiques avec des échelles différentes.

Voir data formats de l'API Google Chart Docs

+0

Merci cgyDeveloper. J'ai vraiment besoin de la mise à l'échelle dans ce cas. Je crois que si j'ai obtenu le flux de l'image, joint un .png réel à l'e-mail et référencé l'image dans le code HTML, cela devrait-il fonctionner? –

+0

@Gustavo, je ne pense pas que cela fonctionnera jusqu'à ce que vous enregistrez les fichiers sur le disque. – Phil

0

Si l'EEG est trop longue, vous pouvez utiliser un POST à ​​la place, vous aurez une limite 16k qui est plus que suffisant. J'ai utilisé le code ci-dessous pour générer votre graphique et cela a fonctionné. Alors oui, je suppose que vous pourriez utiliser le message et le joindre à l'e-mail. Peut-être le problème avec l'utilisation de GET est un problème avec le client de messagerie configuré pour ne pas ouvrir les fichiers image, avez-vous testé dans d'autres clients?

<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" /> 

Questions connexes