文件上传与下载C#实现
文件上传和下载算是 Web 开发里经常碰到的场景了。用 C#做这块其实挺顺手的,ASP.NET 的封装也比较完善,不管是单文件、多文件,还是异步,基本都能轻松搞定。
POST 求搞文件上传时,直接用Request.Files
取上传的内容就行了。像这样:
HttpPostedFileBase file = Request.Files["fileInputName"];
if (file != null && file.ContentLength > 0) {
string fileName = Path.GetFileName(file.FileName);
string savePath = Server.MapPath("~/uploads/") + fileName;
file.SaveAs(savePath);
}
逻辑挺直观的,先判断文件有没有,再拼个路径保存下来,上传大多数场景都够用了。
文件下载也比较简单,基本套路就是设置一下响应头,把文件内容写进去。例如:
public void DownloadFile(string filePath) {
byte[] fileBytes = File.ReadAllBytes(filePath);
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
Response.BinaryWrite(fileBytes);
Response.End();
}
只要路径正确,响应也快,代码也简单。你可以自己包个下载接口,灵活点。
多文件上传用 HTML5 的multiple
属性就行了。C#这边配合Request.Files
遍历一下就可以搞定:
for (int i = 0; i < Request xss=removed>
一次选多个文件上传,前端体验提升不少。
安全性这块也别忽视,文件类型和大小要限制好,别让用户上传一些奇怪的东西。像.exe
、.bat
这类能执行的文件,最好直接拦掉。路径也得用Server.MapPath
,别硬编码路径。
另外,异步也值得一提。用async/await
写上传下载,不光线程不卡,性能也会提升不少。如果你的接口并发量大,这一招挺好用。
,用 C#文件上传和下载,不复杂,配合 ASP.NET 的接口设计,扩展性也挺强。如果你经常做后台接口开发,这套写法值得你收藏。
562.49KB
文件大小:
评论区