Загрузка файла в MVC - PullRequest
       12

Загрузка файла в MVC

7 голосов
/ 22 октября 2009

Я пытаюсь загрузить файлы в MVC. Большинство решений, которые я видел на SO, это использование веб-формы. Я не хочу использовать это и лично предпочитаю использовать потоки. Как реализовать загрузку файлов RESTful в MVC? Спасибо!

Ответы [ 2 ]

13 голосов
/ 22 октября 2009

Редактировать: И только когда вы думаете, что все поняли, вы понимаете, что есть лучший путь. Проверить http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx

Оригинал: Я не уверен, что понимаю ваш вопрос на 100%, но я предполагаю, что вы хотите загрузить файл на URL, который выглядит примерно так: http://{server name} / {Controller} / Upload? Это будет реализовано в точности как обычная загрузка файлов с использованием веб-форм.

Итак, ваш контроллер имеет действие с именем upload и выглядит примерно так:

//For MVC ver 2 use:
[HttpPost]
//For MVC ver 1 use:
//[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Upload()
{
    try
    {
        foreach (HttpPostedFile file in Request.Files)
        {
            //Save to a file
            file.SaveAs(Path.Combine("C:\\File_Store\\", Path.GetFileName(file.FileName)));

            // * OR *
            //Use file.InputStream to access the uploaded file as a stream
            byte[] buffer = new byte[1024];
            int read = file.InputStream.Read(buffer, 0, buffer.Length);
            while (read > 0)
            {
                //do stuff with the buffer
                read = file.InputStream.Read(buffer, 0, buffer.Length);
            }
        }
        return Json(new { Result = "Complete" });
    }
    catch (Exception)
    {
        return Json(new { Result = "Error" });
    }
}

В этом случае я возвращаю Json, чтобы указать успех, но вы можете изменить его на xml (или что-нибудь еще), если это необходимо.

0 голосов
/ 26 марта 2016
public ActionResult register(FormCollection collection, HttpPostedFileBase FileUpload1){
RegistrationIMG regimg = new RegistrationIMG();
string ext = Path.GetExtension(FileUpload1.FileName);
string path = Server.MapPath("~/image/");
FileUpload1.SaveAs(path + reg.email + ext);
regimg.Image = @Url.Content("~/image/" + reg.email + ext);
db.SaveChanges();}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...