增加后缀判断 文件大小判断 优化相关代码
时间: 2023-09-06 19:07:44 浏览: 80
js根据后缀判断文件文件类型的代码
好的,以下是增加文件后缀判断和文件大小判断,同时优化代码的示例:
```csharp
// 文件上传处理接口
[HttpPost("upload")]
public async Task<IActionResult> Upload(IFormFile file)
{
// 判断文件是否为空
if (file == null || file.Length == 0)
return BadRequest("文件为空");
// 判断文件大小是否超过限制
if (file.Length > 1024 * 1024 * 10) // 10MB
return BadRequest("文件大小超过限制");
// 获取文件后缀名
var fileExtension = Path.GetExtension(file.FileName);
// 判断文件后缀名是否符合要求
var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif" }; // 允许上传的文件后缀名
if (!allowedExtensions.Contains(fileExtension.ToLower()))
return BadRequest("不支持的文件类型");
// 生成文件名
var fileName = Guid.NewGuid().ToString() + fileExtension;
// 拼接文件保存路径
var filePath = Path.Combine(_env.WebRootPath, "uploads", fileName);
// 保存文件到指定路径
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream);
}
// 返回上传成功信息
return Ok(new { fileName });
}
```
上述代码在原有上传代码的基础上增加了文件后缀名判断和文件大小判断。其中,`allowedExtensions` 数组定义了允许上传的文件后缀名,文件大小限制为 10MB。如果文件不符合要求,则会返回相应的错误信息。此外,还可以对文件类型进行更加细致的判断,比如判断图片的宽高、文件类型的魔数等。
另外,为了提高代码的可维护性和可扩展性,我们可以将一些常量值定义为类的字段或属性,比如文件大小限制、上传目录等,这样在后续修改时只需要修改这些字段或属性即可,不需要修改所有引用这些值的地方,从而简化代码维护。
阅读全文