Отправить файл из консоли на MVC - PullRequest
0 голосов
/ 06 января 2012

Я работаю в API-интерфейсе MVC и консольном приложении, использующем его в качестве службы.

Код mvc выглядит следующим образом:

[HttpPost]
    public ActionResult Index(HttpPostedFileBase file)
    {

        if (file.ContentLength > 0)
        {
            var fileName = System.IO.Path.GetFileName(file.FileName);
            var path = System.IO.Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
            file.SaveAs(path);
        }

        return RedirectToAction("Index");
    }

Я пробовал разные подходы и не могу получить ничего, кроме file == null на стороне mvc, какая-нибудь помощь?

1 Ответ

1 голос
/ 06 января 2012

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

Независимо от того, какие проблемы, это правильный способдля его отладки:

1) протестируйте метод в вашем браузере.отлаживать / исправлять, пока он не будет работать правильно.2) использовать http-отладчик, чтобы прослушать правильный http-запрос (Fiddler должен выполнить эту работу). 3) использовать WebRequest из консольного приложения и обработать его параметры, чтобы вы могли имитировать набор параметров, обнаруженных с помощью Fidder

.

все готово.

ни в коем случае этот подход не работает.сервер приложений не может сказать, какой клиент инициирует запрос.и если запрос браузера работает правильно, то вы наверняка можете имитировать тот же набор параметров с помощью WebRequest.И Fiddler (или аналогичный) может помочь вам выяснить, какими должны быть конкретные параметры POST.

Для меня - наиболее вероятно, что вы:

a) неправильно передали файл (неправильная кодировка, неправильная)разделитель между параметрами записи) (граница) б) неправильная установка типа запроса

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...