ASP.NET Core 控制器实现文件上传并验证格式及大小

需积分: 50 16 下载量 138 浏览量 更新于2024-09-13 收藏 2KB TXT 举报
这段代码是ASP.NET中处理HTML表单文件上传的部分,主要关注于文件类型检查、大小限制以及文件存储。以下是详细的知识点: 1. **文件上传处理**: 当前端用户通过HTML表单提交文件时,代码首先检查请求中是否存在名为`file_upload`的文件,并判断其文件名是否为空。如果文件存在且名称不为空,程序会继续执行。 2. **文件扩展名验证**: 使用`System.IO.Path.GetExtension`方法获取上传文件的扩展名(如`.doc`),然后与预设的允许文件类型数组(如`.txt`, `.jpg`, `.docx`, 等)进行比较。如果文件扩展名不在预设列表中,则返回错误信息,表示文件格式不正确。 3. **文件大小限制**: 通过`System.Configuration.ConfigurationManager.AppSettings["filesize"]`获取配置中的默认文件大小限制(单位为KB)。将上传文件的大小转换为KB并与默认值进行比较。如果文件大小小于默认值,程序会继续进行文件操作,如重命名和保存。 4. **文件命名和存储**: 新的文件名包含当前日期时间戳和原始文件扩展名,例如`20120711105734222.doc`。存储路径由`System.Web.HttpContext.Current.Server.MapPath("~/UploadFile//")`获取,这里假设`~/UploadFile/`是一个服务器上的目录。如果目标目录不存在,代码会先创建它。最后,使用`context.Request.Files["file_upload"].SaveAs`方法将文件保存到指定路径。 5. **异常处理**: 如果在处理过程中出现任何异常,代码会捕获异常并返回一个错误JSON响应,指示文件格式不正确。 6. **返回结果**: 在所有条件满足的情况下,文件成功上传,JSON响应包含状态码、消息、导航ID等信息。如果文件上传失败(如格式错误或大小超出限制),则返回相应的错误信息和重定向URL。 这个片段展示了在ASP.NET中处理文件上传的常见步骤,包括验证、存储和错误处理,确保符合预设的文件类型和大小规则。这对于Web开发中处理用户上传功能至关重要。