Pregunta

Estoy tratando de armar una página mediante el cual un usuario puede cargar un archivo, y se dirige a una base de datos.

Estoy siguiendo un tutorial, y mi método de control hasta ahora se ve así:

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

Aquí es también un ejemplo de lo que mi punto de vista se ve así:

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

Actualmente estoy recibiendo dos errores de compilación sin embargo:

  
      
  1. 'System.Web.HttpPostedFileBase' no contiene una definición para   'HasFile' y no método de extensión   'HasFile' aceptar un primer argumento   de tipo   'System.Web.HttpPostedFileBase' podría   se encuentra (¿falta una utilizando   directiva o una referencia de ensamblado?)
  2.   
  3. El nombre 'Ruta' no existe en el contexto actual
  4.   

Aquí es también un ejemplo de lo que estoy usando para espacios de nombres en el controlador:

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

Yo estaría muy agradecido si alguien me podría apuntar en la dirección correcta para solucionar este error.

¿Fue útil?

Solución

Creo que he encontrado el tutorial estabas siguiendo?

Si es así - comprobar la parte en la que el autor ha escrito un método de extensión personalizada para el método HasFile (). No es parte del marco, por lo que se necesita para crear esa también.

La segunda cuestión es que Sendero es parte del espacio de nombres System.IO, por lo que tendría que añadir que también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top