Pergunta

Estou tentando montar uma página na qual um usuário pode fazer upload de um arquivo e ele vai para um banco de dados.

Estou seguindo um tutorial e meu método do controlador até agora se parece com o seguinte:

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

Aqui também está um exemplo de como é a minha opinião:

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

No entanto, estou recebendo dois erros de compilação:

  1. 'System.web.httppotedfileBase' não contém uma definição para 'hasfile' e nenhum método de extensão 'hasfile' aceitando um primeiro argumento do tipo 'System.web.httppotedfileBase' pode ser encontrado (você está perdendo uma diretiva ou referência de diretiva ou montagem ?)
  2. O nome 'caminho' não existe no contexto atual

Aqui também está um exemplo do que estou usando para os espaços para nome do controlador:

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

Ficaria muito grato se alguém pudesse me indicar a direção certa para corrigir esse erro.

Foi útil?

Solução

Eu acho que encontrei o tutorial Você estava seguindo?

Nesse caso - verifique a parte em que o autor escreveu um método de extensão personalizado para o método hasfile (). Não faz parte da estrutura, então você precisaria criar isso também.

A segunda questão é que o caminho faz parte do espaço de nome System.io, então você também precisará adicionar isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top