- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 API,我正在尝试上传图片。我尝试使用 swagger 和 postman。
我得到的只是
{
"": [
"The input was not valid."
]
}
这就是我的代码的样子 ->
Controller -
[HttpPost("images")]
public async Task<IActionResult> UploadImage(IFormFile file)
{
return await _imageHandler.UploadImage(file);
}
图像处理程序 -
public interface IImageHandler
{
Task<IActionResult> UploadImage(IFormFile file);
}
public class ImageHandler : IImageHandler
{
private readonly IImageWriter _imageWriter;
public ImageHandler(IImageWriter imageWriter)
{
_imageWriter = imageWriter;
}
public async Task<IActionResult> UploadImage(IFormFile file)
{
var result = await _imageWriter.UploadImage(file);
return new ObjectResult(result);
}
}
最后是图片作者
public class WriterHelper
{
public enum ImageFormat
{
bmp,
jpeg,
gif,
tiff,
png,
unknown
}
public static ImageFormat GetImageFormat(byte[] bytes)
{
var bmp = Encoding.ASCII.GetBytes("BM"); // BMP
var gif = Encoding.ASCII.GetBytes("GIF"); // GIF
var png = new byte[] { 137, 80, 78, 71 }; // PNG
var tiff = new byte[] { 73, 73, 42 }; // TIFF
var tiff2 = new byte[] { 77, 77, 42 }; // TIFF
var jpeg = new byte[] { 255, 216, 255, 224 }; // jpeg
var jpeg2 = new byte[] { 255, 216, 255, 225 }; // jpeg canon
if (bmp.SequenceEqual(bytes.Take(bmp.Length)))
return ImageFormat.bmp;
if (gif.SequenceEqual(bytes.Take(gif.Length)))
return ImageFormat.gif;
if (png.SequenceEqual(bytes.Take(png.Length)))
return ImageFormat.png;
if (tiff.SequenceEqual(bytes.Take(tiff.Length)))
return ImageFormat.tiff;
if (tiff2.SequenceEqual(bytes.Take(tiff2.Length)))
return ImageFormat.tiff;
if (jpeg.SequenceEqual(bytes.Take(jpeg.Length)))
return ImageFormat.jpeg;
if (jpeg2.SequenceEqual(bytes.Take(jpeg2.Length)))
return ImageFormat.jpeg;
return ImageFormat.unknown;
}
}
我正在学习本教程 -> https://www.codeproject.com/Articles/1256591/Upload-Image-to-NET-Core-2-1-API
我已经在项目中修改了Swagger可以上传文件,但是即使是swagger也会抛出同样的错误。我的代码中没有其他错误,并且调试没有任何作用(尝试在我的 Controller 中设置断点,但显然他们不接受或不应该接受,仍在此处学习)。
任何帮助将不胜感激。谢谢!
做了一个干净的测试,问题似乎在 [ApiController]
中。知道为什么/如何修复它吗?
最佳答案
找到了我的问题并找到了解决方法。在发现我的问题是 [ApiController] 之后,我偶然发现了另一个与此相关的 stackoverflow 问题。
这解决了我的问题。将 services.AddMvc()
修改为 -> services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
关于c# - ASPNetCore API IFormFile 返回 "invalid input",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52523043/
我有 ASP.NET Core Web 应用程序,我在其中使用 swagger 使用以下内容: public void ConfigureServices(IServiceCollection ser
AspNetCore.Mvc 和 AspNetCore.Mvc.Core NuGet 包之间有什么区别? Mvc.Core 只是简单的东西,而 Mvc 是一个包罗万象的包吗?这就是我从描述中猜测的he
我有一个包含多个项目的解决方案。我想创建一个项目的Docker镜像,因此我已经通过Docker支持添加了一个Dockerfile。我添加了Dockerfile的项目已在同一级别上依赖于其他项目。当我尝
我正在尝试使用 Ajax 将类列表返回到我的 View 这是我的ajax $(document).ready(function () { debugger; $.
我已经使用过几次这个包Microsoft.AspNetCore.TestHost在我的集成测试中托管 Asp.Net Core Web API 应用程序。 使用 Asp.Net Core 2.1 包
我正在尝试使用 Ajax 将类列表返回到我的 View 这是我的ajax $(document).ready(function () { debugger; $.
SignalR 客户端有两个 nuget 包: Microsoft.AspNetCore.SignalR.Client和 Microsoft.AspNetCore.SignalR.Client.Cor
这个错误的可能原因是什么: InvalidOperationException: No service for type 'Microsoft.AspNetCore.Identity.UserMana
使用 IFormFile 时,我在运行时收到此错误: Could not load type 'Microsoft.AspNetCore.Http.Internal.FormFile' from as
我正在尝试将我的 API 项目从 .net core 2.2 升级到 .net core 3.1。我在尝试进行 API 调用时遇到此异常。 "Message":"Could not load type
我在 netcoreapp3.0 Web 应用程序中使用 netstandard2.1 库。在 Startup 中添加我的服务时,出现以下错误: 'Could not load type 'Micro
我遇到以下异常: Cannot resolve parameter 'Microsoft.Extensions.Logging.ILogger logger' "At the moment (9/28
我们有使用 Swagger 的 .net core 2.1 mvc webapi 项目。 我们使用以下软件包: swashbuckle 的配置方式如下: services.AddMvcCo
我正在使用图书馆 "FluentValidation.AspNetCore": "6.4.0-beta3"在 .netcore WebApi在一个项目中。您可以在下面看到项目结构。如果我放置 Curr
怎么改Content root path在应用程序 .Net Core 3.0 ASP Blazor 上启动? 现在应用程序以输出开始 info: Microsoft.AspNetCore.DataP
我正在将 Microsoft.AspNetCore.Identity 添加到一个项目中,我得到了 InvalidOperationException: Unable to resolve servic
我有一个 Asp.Net Core 2 Mvc 项目。我目前正在尝试将数据访问分离到一个单独的项目中;但是,一旦我添加对数据访问库的引用,我就会遇到版本冲突: error NU1107: Versio
我理解的三大人生: 单例 有范围 短暂的 但我似乎找不到说明默认生命周期是多少(如果未明确定义)的文档。 最佳答案 默认情况下,注册类型的生命周期是 transient 的,即每次注入(inject)
我有一个正在泄漏线程的 ASP.NET Core 2 应用程序。我如何确定线程永不消亡的原因? 如果我在生产环境中运行该应用程序 10 分钟,IIS 开始吐出 502.3 Bad Gateway 错误
当尝试从新的DotNetCore类库导入AspNetCore MVC站点(WebApplication1)以便运行某些测试时,出现以下错误。 任何人都可以对编译器的工作原理以及为什么使用runtime
我是一名优秀的程序员,十分优秀!