c# http文件上传
/// <summary> /// 上传文件的api /// </summary> [HttpPost] public string UploadFile(op_client_billfile_info model) { string path = AppDomain.CurrentDomain.BaseDirectory + "BillFile"; path += model.path; if (!Directory.Exists(path)) Directory.CreateDirectory(path); model.filename = ExistFile(path, model.filename.Replace(" ", "")); MemoryStream ms = new MemoryStream(model.by); FileStream fs = new FileStream(path + "\\" + model.filename, FileMode.OpenOrCreate); ms.WriteTo(fs); ms.Close(); fs.Close(); return model.filename; } /// <summary> /// 文件名重复加(1) /// </summary> [NonAction] private string ExistFile(string path, string filename) { int count = 1; //在重复名称后加(序号) while (File.Exists(path + "\\" + filename)) { if (filename.Contains(").")) { int start = filename.LastIndexOf("("); int end = filename.LastIndexOf(").") - filename.LastIndexOf("(") + 2; filename = filename.Replace(filename.Substring(start, end), string.Format("({0}).", count)); } else { filename = filename.Replace(".", string.Format("({0}).", count)); } count++; } return filename; }
上传文件类
/// <summary> /// 账单文件信息的id /// </summary> public int bid { get; set; } /// <summary> /// 文件名 /// </summary> public string filename { get; set; } /// <summary> /// 放在服务器的路径 /// </summary> public string path { get; set; } /// <summary> /// 文件 /// </summary> public byte[] by { get; set; }
修改上传文件大小限制,不然会报错。第一个文件的单位是 kb 也就是100M;第二个文件的单位是 byte 也是100M。
<configuration> <system.web> <httpRuntime maxRequestLength="102400" executionTimeout="200" enable="true" /> </system.web> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="104857600" /> </requestFiltering> </security> </system.webServer> </configuration>
下载文件
/// <summary> /// 保存文件
/// url 文件地址(iis);path 保存地址;fileName 保存文件名 /// </summary> private void DownloadFile(string url, string path, string fileName) { Stream sm = WebRequest.Create(url).GetResponse().GetResponseStream(); FileStream fs = new FileStream(path + "\\" + fileName, FileMode.OpenOrCreate); sm.CopyTo(fs); sm.Close(); fs.Close(); }
post请求封装地址:https://www.cnblogs.com/shuaimeng/p/9871582.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)