gpt4 book ai didi

asp.net - Asp.Net Core WebAPI 中的 IFormFile 始终为空

转载 作者:行者123 更新时间:2023-12-04 01:17:03 49 4
gpt4 key购买 nike

当我尝试使用 angularjs Controller 推送数据时,我在这里遇到了问题。但是我所做的(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
};
}]);
})();

Controller
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 提供原始文件,正如我在评论中所写。但仍然没有任何 react

最佳答案

IFormFile 仅在您输入的名称与您的方法参数名称相同时才有效。在您的情况下,输入名称是"file",方法参数名称是"file"。使它们相同,它应该可以工作。

关于asp.net - Asp.Net Core WebAPI 中的 IFormFile 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38144194/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com