problème de téléchargement de fichiers MVC - Référence de montage
-
27-09-2019 - |
Question
Je suis en train de mettre sur pied une page par laquelle un utilisateur peut télécharger un fichier, et il va à une base de données.
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 un autre 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 reçois actuellement deux erreurs de compilation cependant:
- « System.Web.HttpPostedFileBase » ne contient pas de définition « HasFile » et aucune méthode d'extension « HasFile » accepter un premier argument de type « System.Web.HttpPostedFileBase » pourrait être trouvé (vous manque une aide de directive ou une référence d'assemblage?)
- Le nom « Chemin » n'existe pas dans le contexte actuel
Voici un autre 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 fixer cette erreur.
La solution
Je pense avoir trouvé le tutoriel vous suivez?
Si oui - vérifier la partie où l'auteur a écrit une méthode d'extension personnalisée pour la méthode HasFile (). Il ne fait pas partie du cadre, vous devez créer cela aussi.
La deuxième question est que le chemin fait partie de l'espace de noms System.IO, de sorte que vous devrez ajouter aussi.