Jak przesłać plik do aplikacji asp?

0

Cześć,

Szukam rozwiązania, w jaki sposób można przesłać plik za pomocą formularza do aplikacji asp. Piszę w asp .net framework MVC Razor.

Stworzyłem taki formularz:

<div class="container">
    <div class="col-md-2">
        @using (Html.BeginForm("Data", "Admin", FormMethod.Post, new { encrypte = "multipart/form-data"}))
        {
            <div class="form login-form">
                <label for="username" class="text-info">Wczytaj plik:</label>
                <input type="file" name="file" id="file" />
            </div>
            <div id="register-link" class="text-right">
                <input type="submit" class="btn btn-success" value="Importuj" />
            </div>
            @ViewBag.Message
        }
    </div>
</div>

A tutaj funkcja z kontrolera:

        [HttpPost]
        public ViewResult Data(HttpPostedFile file = null)
        {
            if(file != null && file.ContentLength > 0)
            {
                string path = Path.Combine(Server.MapPath("~/Upload/Data"), Path.GetFileName(file.FileName));
                file.SaveAs(path);
                ViewBag.Message = "Succes";
            }

            return View("AdminDataView", students);
        }

Niestety powyższy kod nie działa, czy robię w nim coś źle, czy istnieje inna opcja przekazania pliku do asp?

0

Dlaczego w kontrolerze masz : HttpPostedFile file = null ??

0
amator963 napisał(a):

Dlaczego w kontrolerze masz : HttpPostedFile file = null ??

Null w przypadku gdyby użytkownik próbował wysłać formularz bez wybrania pliku

1

A tam nie powinno być HttpPostedFileBase zamiast HttpPostedFile?
Co jest w Request.Files?

1

Zapisujecie pliki pod nazwą podaną od usera? odważnie

2

@using (Html.BeginForm("Data", "Admin", FormMethod.Post, new { encrypte = "multipart/form-data"}))

Nie encrypte tylko enctype.

1 użytkowników online, w tym zalogowanych: 0, gości: 1