如何使用wcf服务上传angularjs中的文件?

时间:2015-12-30 11:22:41

标签: angularjs wcf

我卡在我的应用程序中,我想使用带有wcf服务的角度js上传文件,我使用wcf服务来操纵数据库。 我已经为文件上传创建了一个指令。

    myApp.directive('fileModel', ['$parse', function ($parse) {
        return {
            restrict: 'A',
            link: function (scope, element, attrs) {
                var model = $parse(attrs.fileModel);
                var modelSetter = model.assign;
                element.bind('change', function () {
                    scope.$apply(function () {
                        modelSetter(scope, element[0].files[0]);
                    });
                });
        }
    };
}]);

和服务来调用Post方法。

myApp.service('fileUpload', ['$http', function ($http) {
    this.uploadFileToUrl = function (file, uploadUrl) {
        var fd = new FormData();
        fd.append('file', file);
        debugger;
        $http.post('http://localhost:50202/WcfService/Service1.svc/fileUpload', fd, {
            transformRequest: angular.identity,
            headers: { 'Content-Type': undefined }
        })
        .success(function () {
        })
        .error(function () {
        });
    }
}]);

所以问题是,当文件转换为字节wcf服务时,说大小太大。 所以任何人都可以帮助我,我怎样才能将文件分段为块并上传。

1 个答案:

答案 0 :(得分:0)

您需要在Web.config中增加最大邮件长度:

<configuration>
  <system.web>
  <httpRuntime maxMessageLength="409600"
    executionTimeoutInSeconds="300"/>
  </system.web>
</configuration>

这会将最大消息长度设置为400 MB(参数以kB为单位)。