溫馨提示×

新建一個 webapi 項目,并實現(xiàn)上傳文件的接口功能

小云
140
2023-09-19 08:14:59
欄目: 編程語言

在創(chuàng)建一個新的 WebAPI 項目之前,確保已經(jīng)安裝了 .NET Core SDK。下面是一個創(chuàng)建并實現(xiàn)上傳文件接口功能的示例。

  1. 打開終端或命令提示符,導(dǎo)航到想要創(chuàng)建項目的目錄。

  2. 執(zhí)行以下命令來創(chuàng)建一個新的 WebAPI 項目:

dotnet new webapi -n MyFileUploadApi

這將創(chuàng)建一個名為 MyFileUploadApi 的新的 WebAPI 項目。

  1. 導(dǎo)航到項目目錄:
cd MyFileUploadApi
  1. 打開 Controllers 文件夾,并編輯 WeatherForecastController.cs 文件。

  2. 刪除默認生成的代碼,替換為以下代碼:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.IO;
using System.Threading.Tasks;
namespace MyFileUploadApi.Controllers
{
[ApiController]
[Route("[controller]")]
public class FileUploadController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post(IFormFile file)
{
try
{
if (file == null || file.Length == 0)
return BadRequest("No file uploaded.");
// 文件存儲路徑
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "Uploads", file.FileName);
// 創(chuàng)建文件夾
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
// 保存文件
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok("File uploaded successfully.");
}
catch (Exception ex)
{
return StatusCode(500, $"Internal server error: {ex}");
}
}
}
}

這個控制器類中包含一個 Post 方法,用于處理上傳文件的請求。它將接收一個 IFormFile 類型的參數(shù),該參數(shù)將包含上傳的文件。

  1. 保存文件并退出編輯器。

  2. 將項目運行起來:

dotnet run

這將啟動一個本地的開發(fā)服務(wù)器,監(jiān)聽 https://localhost:5001http://localhost:5000。

  1. 使用任何 HTTP 請求工具(如 Postman 或 cURL)發(fā)送一個 POST 請求到 https://localhost:5001/FileUpload(或 http://localhost:5000/FileUpload),并將文件作為請求體的一部分上傳。

注意:確保 Content-Type 設(shè)置為 multipart/form-data。

在 Postman 中,你可以選擇 Body 選項卡,在 form-data 類型下添加一個 Keyfile 的字段,然后選擇一個文件作為 Value。

  1. 檢查控制臺輸出或返回的響應(yīng),在成功上傳文件后會返回一個 200 OK 響應(yīng)。

這樣,你就成功創(chuàng)建了一個具有上傳文件接口功能的 WebAPI 項目。你可以根據(jù)自己的需要進行擴展和定制。

0