c# - 为什么我的文件从 Angular 上传到 .NET core web api 不起作用?
问题描述
在我的 Angular 应用程序中,我使用了一个控件:https ://github.com/valor-software/ng2-file-upload
此控件向我的 .NET 核心 Web API 发布一个带有文件的帖子。这是一个简短的示例,这并不重要。
public uploader: FileUploader = new FileUploader({url: `${environment.apiBaseUrl}/file`});
最终,控件对此 .NET 核心 web api 操作进行了发布:
[Route("[controller]")]
public class FileController : Controller
{
[HttpPost]
public void Post(IFormFile uploadedFile)
{
var file = uploadedFile;
_fileSystemProvider.SaveToFileSystemAsync(_uploadSettings.GetReplacedDirectoryPath(), file.FileName, file.OpenReadStream());
}
}
文件上传正在发布到 .NET web api,使用 Chrome 中的控制台确认,但uploadFile参数是NULL
.
为什么会这样?
解决方案
事实证明,您的 post 操作中的参数名称非常重要。
我发现ng2-file-upload使用file作为 fileInput 中的名称属性。
因此,当我将 post action 参数从更改uploadedFile
为file
一切正常时!
[HttpPost]
public void Post(IFormFile file)
{
_fileSystemProvider.SaveToFileSystemAsync(_uploadSettings.GetReplacedDirectoryPath(), file.FileName, file.OpenReadStream());
}
我的问题是 ng2-fileupload,但你也可以在任何其他框架中使用任何其他插件!确保文件输入或上传控件的名称属性等于.NET Web apiIFormFile parameter
中操作的名称!Post
推荐阅读
- r - R基于列和列表合并两个数据帧
- java - 寻找大 O 复杂度。三种算法
- javascript - 如何使用 ng2-file-upload 以角度上传 .ply 文件
- python - Python 中的类型注释是否强制执行静态类型检查?
- php - PHP发生错误时如何获取所有变量
- c# - 如何使用来自 MVC5 (asp.net) 的依赖注入的 netstandard 2.0 库
- reactjs - 你会推荐哪个网站来学习 Reactjs
- laravel - Laravel Gate::forUser 与认证用户相关
- go - 为什么 Go 编译器只需要包含您直接导入的包?
- javascript - 我想显示 timepicker.js