2013-05-13 122 views
0

我想将图片网址保存到会话中,并且此网址我进入另一页面加载,然后加载到图像按钮中。有没有可能?我使用下面的代码来保存图片网址;如何将图片网址保存到会话中

Image = Image1.ImageUrl.ToString(); 
         Session["logo"] = Convert.FromBase64String(Image); 

但我得到如下错误,就像这样;

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters.

另一个页面我得到这个图片的URL,

protected void Page_Load(object sender, EventArgs e) 
{ 
    Image img =(Image)Session["logo"]; 
    ImageButton1.Controls.Add(img); 
} 

上面的代码还得到一个错误。所以请帮助我。

+3

第一个错误的哪部分你不明白?第二个错误是什么意思? – SLaks 2013-05-13 14:10:58

+0

难道你不能把它作为一个普通的字符串存储吗? 'Session [“Logo”] = Image1.ImageUrl.ToString()' – LukeHennerley 2013-05-13 14:11:35

+5

这里有点混乱吗?保存一个字符串并恢复一个图像? – Steve 2013-05-13 14:12:57

回答

1

你想要的图像的URL或二进制数据?您正在将URL(例如http://www.mycompany.com/logo.png)存储在Image变量中,但随后尝试从Base64“解码”它。它看起来像你试图获取图像的二进制数据,并存储在会话中。为什么不直接存储URL而不是试图解码它?

string image = Image1.ImageUrl.ToString(); 
Session["logo"] = image; 


protected void Page_Load(object sender, EventArgs e) 
{ 
    string imgURL = Session["logo"]; 
    ImageButton1.Controls.Add(new Image() { ImageURL = imgURL }); 
} 

否则你将不得不创建一个HttpRequest捕捉图像的二进制数据,然后嵌入在形式(这不是那么简单,添加图像控制,因为有无处但二进制数据在网络控制中)