2010-09-13 4 views
2

Je développe un site web de bandes dessinées multilingues et toutes les bandes dessinées insérées doivent être en anglais et en portugais.Comment télécharger des fichiers sur ASP.NET MVC2?

J'ai succès sur la gestion de plusieurs titres faisant:

ComicViewModel.cs:

public class ComicViewModel 
{ 
    [Key] 
    public int Id { get; set; } 

    [Required(ErrorMessage="A data não pode ficar em branco.")] 
    [DisplayName("Data")] 
    public DateTime Date { get; set; } 

    public IList<LocalizedTextViewModel> Titles { get; set; } 
} 

LocalizedTextViewModel.cs:

public class LocalizedTextViewModel 
{ 
    public CultureViewModel Culture { get; set; } 

    [Required(ErrorMessage = "Este campo não pode ficar em branco.")] 
    public string Text { get; set; } 
} 

CultureViewModel.cs :

public class CultureViewModel 
{ 
    public int Id { get; set; } 
    public string Abbreviation { get; set; } 
    public string Name { get; set; } 

    public CultureViewModel() { } 

    public CultureViewModel(Database.Culture culture) 
    { 
     Id = culture.Id; 
     Abbreviation = culture.Abbreviation; 
     Name = culture.Name; 
    } 
} 

Le problème est que je n'arrive pas à comprendre comment gérer le téléchargement des images BD. J'ai besoin de télécharger plus d'une image, chacune étant référencée à sa langue.

Quelqu'un a des idées?

+0

je vis [ici] (http://bartwullems.blogspot.com/2010/01/uploading-files-using-aspnet-mvc-2.html) un moyen de gérer les fichiers téléchargés. Mais en utilisant un 'IEnnumerable' je ne peux pas savoir dans quelle langue est chaque fichier. –

Répondre

1

Voici un exemple pour le téléchargement de fichiers multiples:

Le Html:

<% using (Html.BeginForm("Upload", "File", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{%><br /> 
    <input type="file" name="files" id="file1" size="25" /> 

    <input type="file" name="files" id="file2" size="25" /> 

    <input type="submit" value="Upload file" />  
<% } %> 

Le contrôleur:

[HttpPost] 
public ActionResult Upload() 
{ 
    foreach (string inputTagName in Request.Files) 
    { 
     HttpPostedFileBase file = Request.Files[inputTagName]; 
     if (file.ContentLength > 0) 
     { 
      string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads") 
        , Path.GetFileName(file.FileName)); 
      file.SaveAs(filePath); 
     } 
    } 

    return RedirectToAction("Index"); 
} 

Mise à jour: Obtenir des informations sur le fichier téléchargé

Les exa suivants mple montre comment vous pouvez obtenir le nom/type/taille/extension d'un fichier HttpPostedFileBase soumis.

string filename = Path.GetFileName(file.FileName); 

string type = file.ContentType; 

string extension = Path.GetExtension(file.FileName).ToLower(); 

float sizeInKB = ((float)file.ContentLength)/1024; 

Supposons que vous avez téléchargé le fichier somePicture.jpeg la sortie sera.

filename > somePicture.jpeg 
type  > image/jpeg 
extension > jpeg 
sizeInKB > // the file size. 
+0

Ok, il obtient les images, mais j'ai besoin de savoir dans quelle culture est chaque image. Comment puis-je le reconnaître? Puis-je changer l'attribut name sur le formulaire? –

+0

@Rodrigo Waltenberg: J'espère que ma mise à jour a la réponse à votre première question et à propos de l'attribut name, vous pouvez le changer pour ce que vous voulez. –

+0

Votre réponse résout ma question. Mais je pense que je ne me suis pas bien exprimé ... j'en ai besoin dans un ViewModel, donc ça ne marche pas pour moi. Je vais marquer cette question comme résolue et reconstruire ma question dans un autre fil. Merci quand même –

Questions connexes