0


ASP.NET Core Web API上传多个文件和JSON数据的方法及代码

ASP.NET Core Web API中,上传多个文件和JSON数据的实现涉及配置文件上传功能和处理JSON数据。下面是一个完整的示例,展示如何在ASP.NET Core Web API中处理这种请求。

  1. 配置项目
    首先,确保你的ASP.NET Core项目包含必要的包:

Microsoft.AspNetCore.Http
Microsoft.AspNetCore.Mvc
这些包通常在创建ASP.NET Core Web API项目时会自动包含。

  1. 创建模型类
    定义一个模型类来表示JSON数据。例如,假设我们有一个简单的Product模型:

public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
3. 创建控制器
在控制器中,创建一个用于处理上传请求的动作方法。这个方法将接受文件和JSON数据。使用[FromForm]属性来处理文件和JSON数据。

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

namespace YourNamespace.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UploadController : ControllerBase
{
[HttpPost("upload")]
public async Task<IActionResult> UploadFilesAndData([FromForm] Product product, [FromForm] List<IFormFile> files)
{
if (product == null || files == null || files.Count == 0)
{
return BadRequest("Invalid input.");
}

        // Process JSON data (product)
         // e.g., save product details to the database

        // Process files
         foreach (var file in files)
         {
             if (file.Length > 0)
             {
                 var filePath = Path.Combine("YourFileSavePath", file.FileName);

                using (var stream = new FileStream(filePath, FileMode.Create))
                 {
                     await file.CopyToAsync(stream);
                 }
             }
         }

        return Ok(new { message = "Files and data uploaded successfully." });
     }
 }

}
4. 配置Startup.cs
确保在Startup.cs中配置了文件上传的相关设置。你可能需要增加对静态文件和其他配置的支持:

public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
// Add any other services you need
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

app.UseHttpsRedirection();
 app.UseRouting();
 app.UseAuthorization();

app.UseEndpoints(endpoints =>
 {
     endpoints.MapControllers();
 });

}
5. 测试API
使用Postman或其他HTTP客户端来测试上传功能。确保请求类型为POST,并将请求的Content-Type设置为multipart/form-data。发送JSON数据和文件,如下图所示:

在Body选项卡中选择form-data。
添加字段product,并将其值设置为一个JSON字符串(例如:{"id": 1, "name": "Sample Product", "price": 99.99})。
添加多个文件字段,选择要上传的文件。

POST /api/upload/upload HTTP/1.1
Host: localhost:5001
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="product"

{"id": 1, "name": "Sample Product", "price": 99.99}
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain

(file content here)
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files"; filename="file2.jpg"
Content-Type: image/jpeg

(file content here)
------WebKitFormBoundary7MA4YWxkTrZu0gW--

参考文档:ASP.NET Core Web API上传多个文件和JSON数据的方法及代码 -CJavaPy

标签: asp.net 前端 json

本文转载自: https://blog.csdn.net/weixin_42098295/article/details/140423918
版权归原作者 weixin_42098295 所有, 如有侵权,请联系我们删除。

“ASP.NET Core Web API上传多个文件和JSON数据的方法及代码”的评论:

还没有评论