2013-03-29 37 views
0
protected void upload_Click(object sender, EventArgs e) 
{ 
    if (Upload.Value !="") 
    { 
     System.IO.Stream fs = Upload.PostedFile.InputStream; 
     img_uploadStream = Upload.PostedFile.InputStream; 
     System.IO.BinaryReader br = new System.IO.BinaryReader(fs); 
     Byte[] bytes = CreateThumbnail(br.ReadBytes((Int32)fs.Length),150); 
     string base64String = Convert.ToBase64String(bytes, 0, bytes.Length); 
     imageField.Src = String.Format("data:{0};base64,{1}", "image/jpeg", base64String); 
    } 
} 

上傳圖片後,Upload.PostedFile.InputStream設置爲空值。 我想將此輸入流保存到asp.net視圖狀態以重用。要使用上傳圖片並保存視圖狀態下的文件流

ViewState["ImageStream"]=Upload.PostedFile.InputStream; 

然後你就可以在頁面內得到您的視圖狀態的任何地方:

回答

0

您可以使用此代碼

public Byte[] YourImage 
{ 
get 
{ 
if(ViewState["Key"] != null) 
{ 
return (Byte[]) ViewState["Key"]; 
} 
return null; 
} 

set 
{ 
    ViewState["Key"] = value; 
} 
} 
+0

感謝Frederique :)這是有效的! – zey

+0

我很高興幫助你zey –

0

設置的ViewState內upload_Click

System.IO.Stream fstream=(System.IO.Stream)ViewState["ImageStream"]; 
+1

我已經嘗試過了!但是我得到了這個錯誤(類型'System.Web.HttpInputStream'在大會'System.Web,版本= 4.0.0.0,文化=中立,PublicKeyToken = b03f5f7f11d50a3a'未標記爲可序列化。) – zey

+0

無論如何,謝謝你的答案,肯·克拉克:) – zey

+0

:) :) :) :) :) :) –