我正忙着在asp.net中创建一个控件。控件由一些文本和图像组成。该图像将用于显示图表。控件通过从数据库中读取数据来获取图表的数据。我似乎有两个选项可以在图像框中显示图形。首先,我可以从数据创建一个jpg并将文件保存在服务器上。然后我可以将此文件加载到图像框中。我认为如果各种用户同时尝试访问该网站会导致问题,所以我认为这不是一个好选择。其他选项是创建一个名为output的文件,它输出如下图:objBitmap.Save(Response.OutputStream, ImageFormat.Gif)
然后我可以在我的控件中显示这样的图像:Image1.ImageUrl = "output.aspx"
我面临的问题是如何将控件中的数据输出到输出页面?据我所知,作为参数传递的数据太多了。如果还有其他更好的方法,请告诉我
由于
答案 0 :(得分:0)
您可以将图像内容写入output.aspx的响应中。这样的东西(取自我现有的一个GetImage页面:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim strFilename As String
strFilename = Request.QueryString("filename")
Dim strPath As String = AppSettings("ProxyImageSavePath") & strFilename
Response.Clear()
Response.ContentType = "image/jpeg"
If Not IO.File.Exists(strPath) Then
'erm
Response.Write("file not found")
Else
Response.WriteFile(strPath)
End If
Response.End()
End Sub
编辑:我刚刚意识到这可能不是您正在寻找的解决方案;您的网络服务器应该能够缓存它。
答案 1 :(得分:0)
你需要处理程序。请参阅本文Protecting Your Images,“创建ImageHandler HTTP处理程序”部分,您将找到如何编写处理程序的代码,因此它会输出一个图像。你不需要所有,这只是一个例子。
您还需要在web.config中注册处理程序。
引用它Image1.ImageUrl =“handler.ashx?graphdata = xxxx”。使用QueryString获取数据源以生成图形。