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:

  
      
  1. « 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?)
  2.   
  3. Le nom « Chemin » n'existe pas dans le contexte actuel
  4.   

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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top