Image.FromStream(PostedFile.InputStream) Échoue. (Paramètre n'est pas valide.) (AsyncFileUpload))

Je suis en utilisant un AsyncFileUpload (AJAX Toolkit) pour télécharger des images.
J'ai un Bouton sur lequel gérer le redimensionnement d'image.
Cela a fonctionné pendant un certain temps, mais pas plus...

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);

...
}

Une autre chose que je trouve bizarre: Si je cherche une image qui est plus petit que 80 ko il fonctionne..!

Nous avons essayé de redémarrer le serveur, mais pas de changement.
Code fonctionne très bien sur ma machine. (entendu cela avant ?? 🙂 )

J'ai aussi essayé d'enregistrer le fichier sur le serveur, puis pour obtenir le fichier creux de l'Image.FromFile(), mais puis-je obtenir "Ne peut pas accéder à un fichier fermé."

Comment résoudre ce problème ?

Il manque le code dans votre extrait de code.
Je pense que tout ajout de la fin attelle à la fonction qui est mauvais, il ne peut pas s'arrêter là, le img variable n'est pas utilisée.
Ne pense pas que le reste est une question pertinente, ce qui se passe après l'Image.FromStream() ne s'exécute de toute façon.
Basé sur votre idée que < 80 ko de travaux est conforme à mes propres conclusions lorsque l'on travaille avec téléchargement-les ruisseaux et les Graphics/Bitmap etc. Le même problème se produit dans le sens inverse, lorsque vous essayez d'écrire un Graphique à une Réponse.Hors de flux.
Le Cannot access a closed file erreur est bizarre, mais si vous regardez à travers votre code réel, vous pouvez voir les endroits où vous ne fonctionnent pas correctement avec IDisposable et using blocs. C'est généralement la cause de ressources qui sont encore en usage ou qui ne peut pas être lu ou écrit.

OriginalL'auteur Thomas Sandberg | 2009-10-23