2010-10-29 3 views
1

J'essaie de créer une page permettant à un utilisateur de télécharger un fichier et de l'envoyer à une base de données.Problème de téléchargement de fichier MVC - référence d'assemblage

Je suis un tutoriel, et ma méthode du contrôleur si loin ressemble à ceci:

public ActionResult Index() 
{ 
    ViewData["Message"] = "File Upload"; 
    foreach (string upload in Request.Files) 
    { 
     if (!Request.Files[upload].HasFile()) continue; 
     string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/"; 
     string filename = Path.GetFileName(Request.Files[upload].FileName); 
     Request.Files[upload].SaveAs(Path.Combine(path, filename)); 
    } 

    return View(); 
} 

Voici aussi un exemple de ce que mon point de vue ressemble à:

<p> 
    <% using (Html.BeginForm("", "home", FormMethod.Post, new { enctype = "multipart/form-data" })) 
     { %> 
    <input type="file" name="FileUpload1" /><br /> 
    <input type="submit" name="Submit" id="Submit" value="Upload" /> 
    <% } %> 
</p> 

Je suis obtenir actuellement deux des erreurs de compilation cependant:

  1. « System.Web.HttpPostedFileB ase » ne contient pas de définition pour « HasFile » et aucune méthode d'extension « HasFile » accepter un premier argument de type « System.Web.HttpPostedFileBase » pourrait être trouvé (vous manque une directive à l'aide ou un ensemble ? référence)
  2. le nom « chemin » n'existe pas dans le contexte actuel

Voici aussi un exemple de ce que je suis en utilisant des espaces de noms dans le contrôleur:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.UI.WebControls; 

Je serais très reconnaissant si quelqu'un pouvait me diriger dans la bonne direction pour corriger cette erreur.

Répondre

3

Je pense avoir trouvé le tutorial que vous suiviez?

Si tel est le cas, cochez la case où l'auteur a écrit une méthode d'extension personnalisée pour la méthode HasFile(). Cela ne fait pas partie du cadre, vous devrez donc le créer également.

Le second problème est que Path fait partie de l'espace de noms System.IO, vous devez donc également l'ajouter.

+0

Merci beaucoup AndyB! – 109221793

Questions connexes