Sto utilizzando un AsyncFileUpload (AJAX Toolkit) per caricare le immagini. Ho un pulsante che gestisce il ridimensionamento dell'immagine. Questo ha funzionato bene per un po 'di tempo, ma ora non più ...Image.FromStream (PublishedFile.InputStream) non riesce. (Il parametro non è valido.) (AsyncFileUpload))
protected void BtnUploadImage_Click(object sender, EventArgs e)
{
var imageFileNameRegEx = new Regex(@"(.*?)\.(jpg|jpeg|png|gif)$",
RegexOptions.IgnoreCase);
if (!AsyncFileUpload1.HasFile ||
!imageFileNameRegEx.IsMatch(AsyncFileUpload1.FileName))
{
AsyncFileUpload1.FailedValidation = true;
ErrorLabel.Visible = true;
return;
}
ErrorLabel.Visible = false;
var file = AsyncFileUpload1.PostedFile.InputStream;
var img = Image.FromStream(file, false, false);
...
}
Un'altra cosa che trovo strano: Se provo un'immagine che è più piccola di 80kb funziona ..!
Abbiamo provato a riavviare il server, ma nessuna modifica. Lo stesso codice funziona correttamente sulla mia macchina. (sentito prima ?? :))
Ho anche provato a salvare il file sul server, quindi a ottenere il file tramite Image.FromFile(), ma poi ho "Impossibile accedere a un file chiuso".
Come risolvere questo?
C'è codice mancante nella vostra snippet. –
@Joseph, penso che aggiungere la parentesi finale alla funzione sia sbagliato, non può semplicemente fermarsi lì, la variabile 'img' non è usata. –
Non pensavo che il resto fosse rilevante, cosa succede dopo Image.FromStream() non viene eseguito comunque. –