IFormFile在Asp.Net Core WebAPI中始终为空

错误505

当我尝试使用angularjs控制器推送数据时,我在这里遇到问题。但是我所做的(IFormFile文件)始终是空的。只有一些带有razor语法的示例,但是没有任何示例如何使用angular或jquery做到这一点。

HTML:

<form class="form-body" enctype="multipart/form-data" name="newFileForm" ng-submit="vm.addFile()"><input type="file" id="file1" name="file" multiple ng-files="getTheFiles($files)"/></form>

指示:

(function() {
'use strict';

angular
    .module('app')
    .directive('ngFiles', ['$parse', function ($parse) {

    function fn_link(scope, element, attrs) {
        var onChange = $parse(attrs.ngFiles);
        element.on('change', function (event) {
            onChange(scope, { $files: event.target.files });
        });
    };

    return {
        link: fn_link
    };
    }]);
})();

控制器

var formdata = new FormData();
    $scope.getTheFiles = function ($files) {
        angular.forEach($files, function (key, value) {
            formdata.append(key, value);
        });
    };

vm.addFile = function () {                                              
        var xhr = new XMLHttpRequest();
        xhr.open('POST', url, true);
        xhr.setRequestHeader("Content-Type", "undefined");
        xhr.send(formdata);          
    }

Asp.net核心webapi:

[HttpPost]
    public async Task<IActionResult> PostProductProjectFile(IFormFile file)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        ....
        return ...;
    }

我还尝试过使用formdata,因为它是在您使用razor语法发布时构造的。像这样的东西:

dataService.addFile(formdata, {
            contentDisposition: "form-data; name=\"files\"; filename=\"C:\\Users\\UserName\\Desktop\\snip_20160420091420.png\"",
            contentType: "multipart/form-data",
                    headers: {
                        "Content-Disposition": "form-data; name=\"files\"; filename=\"C:\\Users\\UserName\\Desktop\\snip_20160420091420.png\"",
                        'Content-Type': "image/png"
                    },
                    fileName: "C:\\Users\\UserName\\Desktop\\snip_20160420091420.png",
                    name: "files",
                    length : 3563
            }

也可以代替formData来提供我在注释中写的原始文件。但是仍然没有任何反应

错误505

这是如何使用angularjs做到的:

vm.addFile = function () {                      
                var fileUpload = $("#file").get(0);
                var files = fileUpload.files;
                var data = new FormData();
                for (var i = 0; i < files.length ; i++) {
                    data.append(files[i].name, files[i]);
                }


                $http.post("/api/Files/", data, {
                    headers: { 'Content-Type': undefined },
                    transformRequest: angular.identity
                }).success(function (data, status, headers, config) {

                }).error(function (data, status, headers, config) {

                });
}

在网络Api中:

[HttpPost]
public async Task<IActionResult> PostFile()
{
 //Read all files from angularjs FormData post request
 var files = Request.Form.Files;
 var strigValue = Request.Form.Keys;
 .....
}

或像这样:

    [HttpPost]
    public async Task<IActionResult>  PostFiles(IFormCollection collection)
    {
        var f = collection.Files;                         

            foreach (var file in f)
            {
                //....
             }           
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IFormFile在ASP.NET Core 3.0 MVC中始终为NULL

来自分类Dev

如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

来自分类Dev

我可以信任ASP.NET Core中IFormFile上的.Length属性吗?

来自分类Dev

无法使用 ASP.Net Core 2 中的 IFormFile 对象上传照片,并出现空引用异常

来自分类Dev

Cookie域在ASP.NET 4.5中始终为空

来自分类Dev

Cookie域在asp.net 4.5中始终为空

来自分类Dev

ASP.Net身份,角色中的用户始终为空

来自分类Dev

使用HTTPClient的带有ViewModel的ASP.NET Core Post表单数据IFormFile

来自分类Dev

ASP.NET Core API中的模型绑定始终为null

来自分类Dev

asp.net 参数始终为空

来自分类Dev

.Net Core 3.0 AJAX POST主体始终为空

来自分类Dev

使用Asp.NET Core 3.1框架将文件上传到服务器时,如何使用IFormFile作为属性?

来自分类Dev

在 ASP Core 1.1 中使用 IFormFile 上传

来自分类Dev

asp.net core 1.0在webapi中获取Windows身份

来自分类Dev

在ASP.NET Core WebAPI中获取OData计数

来自分类Dev

asp.net core webapi中的一对多关系

来自分类Dev

当传递到ASP.NET Core 2.2中的[FromForm]使用的模型时,GUID的列表为空

来自分类Dev

为什么将带有Ajax的参数传递给ASP.NET Core中的控制器始终为NULL?

来自分类Dev

使用.Net Framework v5.0的ASP.Net Web应用程序:从视图传递到控制器时,IFormFile始终为null

来自分类Dev

ASP.NET Core 路由空参数

来自分类Dev

ASP.NET WebAPI OData Delta对象字段在PATCH请求中为空

来自分类Dev

ASP.NET WebAPI OData Delta对象字段在PATCH请求中为空

来自分类Dev

asp.net mvc 5 DropDownListFor始终为空

来自分类Dev

ASP.NET Core:从jQuery发布复杂类型始终导致“空”模型

来自分类Dev

ASP.NET Core:从jQuery发布复杂类型始终导致“空”模型

来自分类Dev

ASP.NET Core中的属性

来自分类Dev

ASP.Net Core中的动态路由

来自分类Dev

ASP.NET Core中的加密配置

来自分类Dev

Asp.net Core中的UserHostAddress

Related 相关文章

  1. 1

    IFormFile在ASP.NET Core 3.0 MVC中始终为NULL

  2. 2

    如何在ASP.NET Core 1 MVC 6中模拟IFormFile进行单元/集成测试?

  3. 3

    我可以信任ASP.NET Core中IFormFile上的.Length属性吗?

  4. 4

    无法使用 ASP.Net Core 2 中的 IFormFile 对象上传照片,并出现空引用异常

  5. 5

    Cookie域在ASP.NET 4.5中始终为空

  6. 6

    Cookie域在asp.net 4.5中始终为空

  7. 7

    ASP.Net身份,角色中的用户始终为空

  8. 8

    使用HTTPClient的带有ViewModel的ASP.NET Core Post表单数据IFormFile

  9. 9

    ASP.NET Core API中的模型绑定始终为null

  10. 10

    asp.net 参数始终为空

  11. 11

    .Net Core 3.0 AJAX POST主体始终为空

  12. 12

    使用Asp.NET Core 3.1框架将文件上传到服务器时,如何使用IFormFile作为属性?

  13. 13

    在 ASP Core 1.1 中使用 IFormFile 上传

  14. 14

    asp.net core 1.0在webapi中获取Windows身份

  15. 15

    在ASP.NET Core WebAPI中获取OData计数

  16. 16

    asp.net core webapi中的一对多关系

  17. 17

    当传递到ASP.NET Core 2.2中的[FromForm]使用的模型时,GUID的列表为空

  18. 18

    为什么将带有Ajax的参数传递给ASP.NET Core中的控制器始终为NULL?

  19. 19

    使用.Net Framework v5.0的ASP.Net Web应用程序:从视图传递到控制器时,IFormFile始终为null

  20. 20

    ASP.NET Core 路由空参数

  21. 21

    ASP.NET WebAPI OData Delta对象字段在PATCH请求中为空

  22. 22

    ASP.NET WebAPI OData Delta对象字段在PATCH请求中为空

  23. 23

    asp.net mvc 5 DropDownListFor始终为空

  24. 24

    ASP.NET Core:从jQuery发布复杂类型始终导致“空”模型

  25. 25

    ASP.NET Core:从jQuery发布复杂类型始终导致“空”模型

  26. 26

    ASP.NET Core中的属性

  27. 27

    ASP.Net Core中的动态路由

  28. 28

    ASP.NET Core中的加密配置

  29. 29

    Asp.net Core中的UserHostAddress

热门标签

归档