将文件从控制台发送到mvc

时间:2012-01-06 13:46:32

标签: c# asp.net-mvc file-upload

我正在使用mvc api和一个控制台应用程序,并将其作为服务使用。

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

我尝试了不同的方法,在mvc方面我得到的只是file == null,任何帮助?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您正在尝试从控制台应用程序中创建一个Web请求,该请求应该触发控制器上的此特定方法。

无论出现什么问题,这都是调试它的正确方法:

1)使用浏览器测试方法。调试/纠正,直到它正常工作。 2)使用http调试器来嗅探正确的http请求(Fiddler应该做的工作) 3)使用控制台应用程序中的WebRequest并制作其参数,以便您可以模仿使用Fidder嗅探的参数集

你已经完成了。

这种方法无法奏效。应用程序服务器无法告诉客户端触发请求。如果浏览器请求正常工作,那么您肯定可以使用WebRequest模仿相同的参数集。 Fiddler(或类似的)可以帮助您找出特定的POST参数。

对我来说 - 很可能是你:

a)传递文件错误(编码错误,帖子参数之间错误的分隔符)(边界) b)未正确设置请求类型

无论如何 - 没有代码就无法说出来,因此我给你一个算法,你可以用来解决这个问题。