Frage

Ich versuche, zusammen, um eine Seite zu setzen, wodurch ein Benutzer eine Datei hochladen, und es geht in eine Datenbank.

Ich folge ein Tutorial, und mein Controller-Methode sieht so weit wie folgt aus:

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();
}

Hier ist auch ein Beispiel dafür, was meiner Meinung nach aussieht wie:

<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>

Ich bin derzeit immer zwei Kompilierung Fehler jedoch:

  
      
  1. ‚System.Web.HttpPostedFileBase‘ enthält keine Definition für   ‚HasFile‘ und keine Erweiterungsmethode   ‚HasFile‘ ein erstes Argument akzeptieren,   vom Typ   ‚System.Web.HttpPostedFileBase‘ könnte   gefunden werden (möglicherweise fehlt eine using   Richtlinie oder eine Baugruppe Referenz?)
  2.   
  3. Der Name ‚Pfad‘ existiert nicht im aktuellen Kontext
  4.   

Hier ist auch ein Beispiel dafür, was ich für Namensräume in der Steuerung bin mit:

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

Ich wäre sehr dankbar, wenn mir jemand in die richtige Richtung zur Behebung dieser Fehler hinweisen könnte.

War es hilfreich?

Lösung

Ich glaube, ich fand die Tutorial Sie wurden folgende?

Wenn ja - überprüfen Sie den Teil, in dem der Autor eine benutzerdefinierte Erweiterung Methode zur HasFile () -Methode geschrieben hat. Es ist nicht Teil des Rahmens, so dass Sie das auch schaffen müßten.

Das zweite Problem ist, dass Pfad Teil des System.IO Namespace ist, so dass Sie auch hinzufügen müßten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top