ASP.NET Core中的GET请求通常不用于文件上传,因为GET请求的参数会附加在URL中,这可能导致安全问题,如文件名冲突、敏感信息泄露等。而且,浏览器对URL的长度有限制,过长的URL可能导致请求无法成功发送。
对于文件上传,通常使用POST请求,因为POST请求将数据放在请求体中,不会影响URL。在ASP.NET Core中,可以使用IFormFile
来处理文件上传。以下是一个简单的示例:
<form asp-action="Upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit">Upload</button>
</form>
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
public class HomeController : Controller
{
public IActionResult Upload(IFormFile file)
{
if (file == null || file.Length == 0)
{
return Content("No file uploaded.");
}
// 保存文件到服务器的逻辑
// ...
return RedirectToAction("Index");
}
}
这个示例中,Upload
方法接收一个IFormFile
类型的参数,用于处理上传的文件。注意,表单的enctype
属性设置为multipart/form-data
,这是处理文件上传所必需的。