如何使用HttpPostedFile作为控制器动作方法中的参数来使用AngularJs上传单个文件

时间:2016-02-10 05:13:33

标签: angularjs asp.net-mvc

我正在尝试使用MVC中的AngularJs上传文件。但是当发布数据时,它会在500内部服务器上引发错误。

在我的控制器中 -

 [HttpPost]
         public int FileUploadFromAngular(HttpPostedFile fileUploadObj)
         {
            return 1;
         }

方法 FileUploadFromAngular ,我从Angular JS控制器调用一个文件。我在其中定义了一个变量,如 -

$scope.uploadFile = function () {
    var file = $scope.myFile;
    console.log('file is ');
    console.dir(file);
    var uploadUrl = "Home/FileUploadFromAngular";
    FileUploadService.uploadFileToUrl(file, uploadUrl);
};

调用控制器方法而不传递参数但是当我在操作方法中将参数作为HttpPostedFile传递时,它不会调用该方法。请帮我了解一下如何在操作方法中将文件发布为HTTpPostedFile?

1 个答案:

答案 0 :(得分:1)

您不会将该文件作为参数。 Angular用Request.Files发送它。你必须检索如下文件:

     [HttpPost]
     public int FileUploadFromAngular()
     {
        HttpPostedFileBase fileUploadObj= Request.Files[0];
        //for collection
        HttpFileCollectionBase fileUploadObj= Request.Files;
        return 1;
     }