asp.net core视频上传接口
时间: 2023-08-04 07:03:31 浏览: 41
首先,您需要在ASP.NET Core项目中添加Microsoft.AspNetCore.Http和Microsoft.AspNetCore.StaticFiles包。然后在您的控制器中添加以下代码:
```csharp
[HttpPost]
[Route("api/uploadvideo")]
public async Task<IActionResult> UploadVideo(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("File not selected.");
}
// Set the path where the video will be stored
var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "videos", file.FileName);
// Create the file in the specified path
using (var stream = new FileStream(path, FileMode.Create))
{
await file.CopyToAsync(stream);
}
return Ok("Video uploaded successfully.");
}
```
在这个示例中,我们使用`HttpPost`属性来指定这是一个POST请求,并使用`Route`属性来设置API的路由。我们还使用`IFormFile`类型的参数来接收上传的视频文件。
在方法中,我们首先检查文件是否存在,如果不存在,则返回`BadRequest`结果。如果文件存在,则使用`Path.Combine`方法创建文件的保存路径。接着,我们使用`FileStream`类创建文件流,并使用`CopyToAsync`方法从上传文件流中复制数据到指定的文件流中。最后,我们使用`Ok`方法返回上传成功的消息。请注意,我们将视频文件存储在`wwwroot`文件夹中,这是ASP.NET Core应用程序的默认静态文件目录。
当用户使用POST请求上传视频时,他们可以使用类似于以下示例的代码:
```html
<form method="post" enctype="multipart/form-data" action="/api/uploadvideo">
<input type="file" name="file" />
<button type="submit">Upload Video</button>
</form>
```
在这个示例中,我们使用`enctype="multipart/form-data"`属性来指定这是一个多部分表单,以便能够上传文件。我们还使用`input`标签的`type="file"`属性来允许用户选择视频文件。最后,我们使用`action`属性来指定上传视频的API路由。