Загрузка файла вопроса MVC - сборка ссылки - PullRequest
1 голос
/ 29 октября 2010

Я пытаюсь собрать страницу, с помощью которой пользователь может загрузить файл, и он попадает в базу данных.

Я следую учебному пособию, и мой метод контроллера до сих пор выглядит так:

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

Вот также пример того, как выглядит мой взгляд:

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

В настоящее время я получаю две ошибки компиляции:

  1. 'System.Web.HttpPostedFileBase' не содержит определения для «HasFile» и без метода расширения «HasFile» принимает первый аргумент типа 'System.Web.HttpPostedFileBase' может быть найдены (вы пропускаете использование директива или ссылка на сборку?)
  2. Имя «Путь» не существует в текущем контексте

Вот также пример того, что я использую для пространств имен в контроллере:

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

Буду очень признателен, если кто-нибудь сможет указать мне правильное направление для исправления этой ошибки.

1 Ответ

3 голосов
/ 29 октября 2010

Я думаю, что нашел учебник , за которым вы следили?

Если это так - отметьте часть, где автор написал собственный метод расширения для метода HasFile ().Он не является частью фреймворка, поэтому вам также необходимо его создать.

Вторая проблема заключается в том, что Path является частью пространства имен System.IO, поэтому вам также необходимо добавить его.

...