如何在ASP.Net Core MVC中上传文件
时间: 2024-03-26 10:39:35 浏览: 91
在ASP.Net Core MVC中上传文件,可以使用以下步骤:
1. 在视图中添加一个表单,包含一个文件输入控件:
```html
<form method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="file">选择文件:</label>
<input type="file" name="file" id="file" class="form-control-file" />
</div>
<button type="submit" class="btn btn-primary">上传</button>
</form>
```
2. 在控制器中添加一个动作方法,用于接收上传的文件:
```csharp
[HttpPost]
public async Task<IActionResult> Upload(IFormFile file)
{
if (file == null || file.Length == 0)
{
return BadRequest("请选择文件");
}
using (var stream = new MemoryStream())
{
await file.CopyToAsync(stream);
// 处理上传的文件
// ...
return Ok("上传成功");
}
}
```
3. 在Startup.cs文件的ConfigureServices方法中添加文件上传服务:
```csharp
services.AddMvc(options =>
{
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()); // 添加防伪标记,防止跨站攻击
}).AddRazorPagesOptions(options =>
{
options.Conventions.AddPageRoute("/Index", "");
})
.AddNewtonsoftJson(); // 添加NewtonsoftJson,用于序列化JSON
services.AddControllersWithViews(); // 添加控制器和视图
services.AddRazorPages(); // 添加Razor页面
services.AddAntiforgery(); // 添加防伪标记,防止跨站攻击
services.Configure<IISServerOptions>(options =>
{
options.AllowSynchronousIO = true; // 允许同步IO
});
services.Configure<FormOptions>(options =>
{
options.MultipartBodyLengthLimit = long.MaxValue; // 设置允许上传的最大文件大小
});
```
以上就是在ASP.Net Core MVC中上传文件的步骤。需要注意的是,要添加防伪标记,防止跨站攻击;要设置允许上传的最大文件大小。
阅读全文