/// <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. 拆分项目搞成framework 实例

    目前工作中遇到的问题,是讲项目三大模块拆分, 将Discover.Shop和Events的源代码拆分到独立的项目中 拆分是个麻烦事,里面相互依赖很多 ,打包编译也异常复杂,各种报错 编译Event 遇 ...

  2. python 度分秒转度

    #必须是u类型==================u==================== by gisoracle def dmstod(dms): #arcpy.AddMessage(" ...

  3. mysqldump定时任务生成备份文件内容为空解决方法

    1问题:写好了一个mysqldump备份脚本(如图)直接执行可以正常生成备份文件,但在用crontab运行时却生成内容为空 2原因分析:由于mysqldump存在于全局环境变量mysql的bin下面, ...

  4. Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流

    NPOI生产.xlsx文件件时,在使用book.Write(ms);后,会关闭流,这样导致再次使用Respons输出流的时候就出错了. 造成关闭流的主要原因有时其实是跨域,同域是没有问题的. //新建 ...

  5. vi下如何配置自动更新标签(tags)?

    答: 在~/.vimrc中写入以下内容即可: au BufWritePost *.c,*.cpp,*.h silent! !ctags -R & 参考资料: 一键打造vim ide

  6. Python日志模块应用

    # encoding:utf-8 import logging import time class Logs: def __init__(self): self.logger = logging.ge ...

  7. 【python】详解事件驱动event实现

    [python]详解事件驱动event实现 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出). 1.脚本型:脚本型的程序包括最早的批处理文件以及使用Python做 ...

  8. Swagger下载的zip文件无法打开,而且大小比直接下载的要大

    以前写的一个rest提供的是浏览器下载zip包的功能,前端界面调用rest可以正常地下载. 今天使用Swagger来调试下载功能时,发现下载的zip包打不开,而且大小也比直接在浏览器中输入rest地址 ...

  9. mac Access denied for user 'root'@'localhost' (using password: YES)

    1:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务 2: Start it in safe mode 进入终端 输入: cd /usr/local/mysql ...

  10. 11-2 TCP/IP协议栈

    TCP/IP协议栈 Transmission Control Protocol/Internet Protocol传输控制协议/因特网互联协议 TCP/IP是一个Protocol Stack,包括TC ...