将图像存储到会话变量中

时间:2011-04-24 11:44:32

标签: c# asp.net

我上传了一张图片,并将Url(uploadedImage.FileName)添加到了数据库中。然后我将gridview绑定到dataBase并将DataImageUrl字段设置为存储uploadedImage.FileName的数据库的PictureUrl组,因此图像显示在gridview中(仍然在控制大小方面有点挣扎)。

我只想知道如何将此图像信息添加到会话变量中,以便它可以显示在不同的页面上。 这就是我到目前为止所做的事情(我还添加了一个会话["标题"]这很简单,因为它只显示另一页上的文本值)。

if(e.CommandName ==" addToSession")         {

        //get the row index stored in the CommandArgument property
        int index = Convert.ToInt32(e.CommandArgument);

        //get the gridview row where the command is raised
        GridViewRow selectedRow = ((GridView)e.CommandSource).Rows[index];

        //values stored in the text propert of the cells
        string title = selectedRow.Cells[1].Text;
        string pictureUrl = selectedRow.Cells[3].Text; ???????            
        //set the sesion variable ["Title"] to the title          
        Session["Title"] = title;

        //this is where i am experiencing some problems
        Session["ImageID"] = pictureUrl; ???????
        Response.Redirect("RateBook.aspx");
    }

我应该在另一页上添加一个图像按钮并尝试将其绑定到gridview的ImageField吗?

问候

2 个答案:

答案 0 :(得分:2)

看过会话字符串了吗?我从来没有使用网格,但我认为你不能这样做...我认为网格将从数据库中为您流式传输图像。要在以后访问同一图像而不再查询数据库,您将需要存储整个图像,而不仅仅是存储在会话中不再有效的链接(如base64或base128字符串),并提供将图像流回的URL。

答案 1 :(得分:2)

为什么不使用会话变量将url存储到服务器上的图像中?如果 你需要显示它,只需使用:

<img src=<%= Session["ImageID"]  %>>