/// <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 = ;
//在重复名称后加(序号)
while (File.Exists(path + "\\" + filename))
{
if (filename.Contains(")."))
{
int start = filename.LastIndexOf("(");
int end = filename.LastIndexOf(").") - filename.LastIndexOf("(") + ;
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="" executionTimeout="" enable="true" />
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="" />
</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

c# http文件上传的更多相关文章

  1. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  2. 11、Struts2 的文件上传和下载

    文件上传 表单准备 要想使用 HTML 表单上传一个或多个文件 须把 HTML 表单的 enctype 属性设置为 multipart/form-data 须把 HTML 表单的method 属性设置 ...

  3. Java FtpClient 实现文件上传服务

    一.Ubuntu 安装 Vsftpd 服务 1.安装 sudo apt-get install vsftpd 2.添加用户(uftp) sudo useradd -d /home/uftp -s /b ...

  4. 小兔Java教程 - 三分钟学会Java文件上传

    今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...

  5. ,net core mvc 文件上传

    工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...

  6. Web开发安全之文件上传安全

    很长一段时间像我这种菜鸡搞一个网站第一时间反应就是找上传,找上传.借此机会把文件上传的安全问题总结一下. 首先看一下DVWA给出的Impossible级别的完整代码: <?php if( iss ...

  7. AutoIt实现Webdriver自动化测试文件上传

    在运用WebDriver进行自动化测试时,由于WebDriver自身的限制,对于上传文件时Windows弹出的文件选择窗口无法控制,通过在网上查找资料锁定使用AutoIt来控制文件上传窗口. Auto ...

  8. Struts的文件上传下载

    Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...

  9. .JavaWeb文件上传和FileUpload组件使用

    .JavaWeb文件上传 1.自定义上传 文件上传时的表单设计要符合文件提交的方式: 1.提交方式:post 2.表单中有文件上传的表单项:<input type="file" ...

  10. ASP.NET MVC5+EF6+EasyUI 后台管理系统(32)-swfupload多文件上传[附源码]

    系列目录 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家 ...

随机推荐

  1. hystrix(一) 简单使用, 以及动态配置更新

    本文转载自https://my.oschina.net/u/1169457/blog/1787414 hystrix 简单使用, 以及动态配置更新 概述 只介绍同步模式下简单的使用, 有助于快速接入, ...

  2. IPC远程入侵

    https://mp.weixin.qq.com/s/rQxvp2Sq8E4pBn-E9-COww IPC远程入侵 黑客网络技术 4月19日 一.什么是IPC 进程间通信(IPC,Inter-Proc ...

  3. Node.js与VUE安装及环境配置之Windows篇

    Node.js安装及环境配置之Windows篇 https://www.cnblogs.com/zhouyu2017/p/6485265.html Node.js安装及环境配置之Windows篇htt ...

  4. mysql查询表里的重复数据方法

    select username,count(*) as count from hk_test group by username having count>1;

  5. 如何用CSS3来实现卡片的翻转特效

    CSS3实现翻转(Flip)效果 动画效果 效果分析 当鼠标滑过包含块时,元素整体翻转180度,以实现“正”“反”面的切换. HTML分析 分析:.container,.flip为了实现动画效果做准备 ...

  6. 001-多线程-JUC线程池-线程池架构-Executor、ExecutorService、ThreadPoolExecutor、Executors

    一.概述 1.1.线程池架构图 1. Executor 它是"执行者"接口,它是来执行任务的.准确的说,Executor提供了execute()接口来执行已提交的 Runnable ...

  7. Windows10 64位 安装 Postgresql 数据库

    1,下载Postgresql 10.7 版本,下载地址   https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 2 ...

  8. [译] NAT - 网络地址转换(2016)

    [译] NAT - 网络地址转换(2016) Published at 2019-02-17 | Last Update 译者序 本文翻译自 2016 年的一篇英文博客 NAT - Network A ...

  9. Unity3d Terrain splat 9 is null 解决方法

    是因为地形的 材质刷和树木或者草的刷子丢失引起.重新赋值或者删除掉就可以了

  10. 如何制作红蓝3d电影(详细教程)

    自20世纪初以来,电影制作人一直试图通过制作3D电影来利用我们的双眼.现在,由于大量相对实惠的3D电视,你可以享受电影院以外的额外空间 - 你自己拍摄的视频.对于大预算的电影,电影摄影师使用两个相连的 ...