Problema con salvataggio file

giovedì 12 ottobre 2006 - 17.36

Gemini Profilo | Expert

Ciao a tutti
devo ridimensionare un file presente sul server:

FileStream file = new FileStream(Server.MapPath(foto), FileMode.Open, FileAccess.Read); ResizeAndSave(file, cs.WidthFotoBig, cs.HeightFotoBig, Server.MapPath(FileNameBig)); ResizeAndSave(file, cs.WidthFotoSmall, cs.HeightFotoSmall, Server.MapPath(FileNameSmall)); file.Close();

public void ResizeAndSave(Stream imgStr,int Width, int Height,string FileName) { int imgHeight; int imgWidth; //creo il bitmap dallo stream System.Drawing.Image bmpStream=System.Drawing.Image.FromStream(imgStr); //scelta delle dimensioni delle immagini if (bmpStream.Width>bmpStream.Height) { imgHeight=(Width*bmpStream.Height)/bmpStream.Width; imgWidth=Width; } else { imgWidth=(Height*bmpStream.Width)/bmpStream.Height; imgHeight=Height; } //creo un nuovo bitmap ridimensionandolo Bitmap img=new Bitmap(bmpStream,new Size(imgWidth,imgHeight)); //salvo l'immagine ridimensionata img.Save(FileName,System.Drawing.Imaging.ImageFormat.Jpeg); }

Sull'ultima riga di codice ricevo questo messaggio di errore:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Se richiamo la stessa procedura passando un file che carico da un controllo input, non ho nessun problema.
Come risolvo il problema?
Grazie mille

Gemini Profilo | Expert

Ciao
in realtà l'immagine viene carica in una pagina che permette di scegliere la foto da associare ad un articolo. Però scelta la foto, questa pagina viene chiusa.
Quando provo a caricare la foto dopo il resize, prima di dice errore generico GDI+ e se faccio aggiorna mi dice che il file è già in uso.
Grazie per l'aiuto

Gemini Profilo | Expert

Puoi inviarmi un esempio così vedo se così va bene?
Grazie

Gemini Profilo | Expert

Ciao
il file che devo ridimensionare è già presente sul server!
Ho provato il tuo codice, ma ricevo questo errore:
La corrispondenza migliore del metodo di overload per 'System.Drawing.Bitmap.Bitmap(int, int, System.Drawing.Imaging.PixelFormat)' presenta alcuni argomenti non validi


Ho provato a fare alcune modifiche al mio codice, ma ricevo questo errore:

Errore generico in GDI+.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: System.Runtime.InteropServices.ExternalException: Errore generico in GDI+.

Errore nel codice sorgente:
Durante l'esecuzione della richiesta Web corrente è stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione dell'eccezione, vedere l'analisi dello stack dell'eccezione riportata di seguito.

Analisi dello stack:


[ExternalException (0x80004005): Errore generico in GDI+.]
System.Drawing.Image.Save(String filename, ImageCodecInfo encoder, EncoderParameters encoderParams) +378938
System.Drawing.Image.Save(String filename, ImageFormat format) +69
SystemLibrary.GenericFunctionsSystem.ResizeAndSave(Stream imgStr, Int32 Width, Int32 Height, String FileName) +275
gadirsrl.Administrator.Pages.Pages.CreatePage(QuerySystem qs, Boolean file_ins) +4912
gadirsrl.Administrator.Pages.Pages.btnSave_Click(Object sender, ImageClickEventArgs e) +918
System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +105
System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +115
System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102




--------------------------------------------------------------------------------
Informazioni di versione: Versione di Microsoft .NET Framework:2.0.50727.42; Versione di ASP.NET:2.0.50727.42

Come faccio a risolvere questo problema? E' molto importante! Non possibile che non riesco a ridimensionare e salvare un file presente sul server.
Grazie
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5