Angular-file-upload不将图像发布到C#MVC Controller

时间:2015-04-17 15:14:28

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

我在我的ASP.NET MVC应用程序中应用angular-file-uploader.js。我想在服务器上的文件夹中上传图像。在我的ProductTemplate控制器上接收图像时会出现此问题(image始终为null):

public ActionResult FileUpload(HttpPostedFileBase image)
{
    ...
}

我的角度控制器:

MyApp.controller("MyController", ['$scope', '$upload',
function ($scope, $upload) {

    $scope.imageFile = {};

    $scope.saveImage = function(images) {
        var image = images[0];
        image.upload = $upload.http({
            url: '/ProductTemplate/FileUpload',
            method: 'POST',
            headers: {
                'Content-Type': image.type
            },
            data: image
        });

        image.upload.then(function(response) {
            ...some code...
        }, function() {
            ...some code...
        });
    };
}

Html页面:

<form>
    <input type="file" accept="image/*" ng-file-select="" ng-model="imageFile" name="imageFile">
    <button class="btn btn-default" ng-click="saveImage(imageFile)">Change image</button>
</form>

如何在后端控制器上获得正确的图像?

1 个答案:

答案 0 :(得分:0)

我在寻找同一问题的解决方案时遇到了这个问题,所以即使最初的问题有点陈旧,我也会回答:

我所做的是忽略自动绑定,只需检查Request.Files:

foreach (string file in Request.Files) {
    var fileContent = Request.Files[file];
    if (fileContent != null && fileContent.ContentLength > 0) 
        ...