2013-05-14 6 views
3

Я пытаюсь получить блоб из базы данных, но иногда я получаю ошибку «неверный параметр»System.Drawing.Image.FromStream недопустимый параметр

в этой линии

System.Drawing.Image objimg = System.Drawing.Image.FromStream(blobstream, true); 

Вот мой код:

public partial class showblob : System.Web.UI.Page 
{ 

    private System.Drawing.Image.GetThumbnailImageAbort delegateabort; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     // Get a handle on account, create a blob service client and get container proxy 
     var account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("Conn")); 
     account.CreateCloudTableClient().CreateTableIfNotExist("tablename"); 
     var client = account.CreateCloudBlobClient(); 
     CloudBlobContainer container = client.GetContainerReference("tablename"); 
     string id = Request["id"].ToString(); 

     // Retrieve reference to a blob named "myblob" 
     CloudBlob blob = container.GetBlobReference(id); 
     BlobStream blobstream = blob.OpenRead(); 

     if (Request["imgvd"] == "0") 
     { 
      Response.ContentType = "image/jpeg"; 
      System.Drawing.Image objimg = System.Drawing.Image.FromStream(blobstream, true); 

      if (Request["thumb"] != null) 
       objimg = objimg.GetThumbnailImage(140, 210, delegateabort, System.IntPtr.Zero); 

      objimg.Save(Response.OutputStream, ImageFormat.Jpeg); 
     } 

И есть изображение, сохраненное, потому что я уже добавить с помощью этого метода:

if (fileFoto.HasFile) 

    try 
    { 
     CloudBlobClient blobClient = account.CreateCloudBlobClient(); 
     // Retrieve a reference to a container 
     CloudBlobContainer container = blobClient.GetContainerReference("tablename"); 
     // Create the container if it doesn't already exist 
     container.CreateIfNotExist(); 
     CloudBlob blob = container.GetBlobReference("c" + ViewState["id"].ToString());    
     blob.UploadFromStream(fileFoto.PostedFile.InputStream); 
    } 
+0

это исключение? какова фактическая трассировка стека? –

+0

Да, это исключение ... в 'System.Drawing.Image objimg = System.Drawing.Image.FromStream (blobstream, true);' –

+0

. Я считаю, что метод, который я использовал для добавления фотографии, не работает. , –

ответ

0

Я решил свою проблему. Проблема заключалась в том, что я поставил ссылку как

CloudBlob blob = container.GetBlobReference("c" + ViewState["id"].ToString()); 

Когда я загрузить фотографию и взять его с помощью

CloudBlob blob = container.GetBlobReference(ViewState["id"].ToString()); 
Смежные вопросы