Question

J'ai une méthode d'extension ci-dessous, mais quand je lance cela, le foreach me donne InvalidCastException et il dit *

  

Impossible de coulée objet de type   « System.String » taper   'System.Web.HttpPostedFile'.

Code:

public static List<Attachment> GetFiles(this HttpFileCollection collection) {
            if (collection.Count > 0) {
                List<Attachment> items = new List<Attachment>();
                foreach (HttpPostedFile _file in collection) {
                    if (_file.ContentLength > 0)
                        items.Add(new Attachment()
                        {
                            ContentType = _file.ContentType,
                            Name = _file.FileName.LastIndexOf('\\') > 0 ? _file.FileName.Substring(_file.FileName.LastIndexOf('\\') + 1) : _file.FileName,
                            Size = _file.ContentLength / 1024,
                            FileContent = new Binary(new BinaryReader(_file.InputStream).ReadBytes((int)_file.InputStream.Length))
                        });

                    else
                        continue;
                }
                return items;
            } else
                return null;
        }

Merci d'avance.

MSDN dit:

  

Les clients encodent les fichiers et les transmettent   dans le corps du contenu en utilisant multipartie   format MIME avec un type de contenu HTTP   en-tête de multipart / form-data. ASP.NET   extrait le fichier codé (s) à partir du   corps contenu dans des éléments individuels   d'un HttpFileCollection. méthodes et   propriétés de la classe HttpPostedFile   fournir un accès au contenu et   propriétés de chaque fichier.

Était-ce utile?

La solution

Si vous regardez l'exemple de code sur cette page, il montre comment vous devez énumérer la collection, vous êtes en fait obtenir une chaîne lorsque vous essayez d'énumérer comme vous êtes.

http://msdn.microsoft.com/en- nous / bibliothèque / system.web.httpfilecollection.aspx

scroll top