c#+上传文件至服务器,C# 实现文件上传到服务器
【实例简介】
可以实现文件上传到服务器的功能
【实例截图】
【核心代码】
public int UpSound_Request(string address, string fileNamePath, string saveName, ProgressBar progressBar)
{
int returnValue = 0;
//要上传的文件
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
//二进制对象
BinaryReader r = new BinaryReader(fs);
//时间戳
string strBoundary = "----------" DateTime.Now.Ticks.ToString("x");
byte[] boundaryBytes = Encoding.ASCII.GetBytes("\r\n--" strBoundary "\r\n");
//请求的头部信息
StringBuilder sb = new StringBuilder();
sb.Append("--");
sb.Append(strBoundary);
sb.Append("\r\n");
sb.Append("Content-Disposition: form-data; name=\"");
sb.Append("file");
sb.Append("\"; filename=\"");
sb.Append(saveName);
sb.Append("\";");
sb.Append("\r\n");
sb.Append("Content-Type: ");
sb.Append("application/octet-stream");
sb.Append("\r\n");
sb.Append("\r\n");
string strPostHeader = sb.ToString();
byte[] postHeaderBytes = Encoding.UTF8.GetBytes(strPostHeader);
// 根据uri创建HttpWebRequest对象
HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(new Uri(address));
httpReq.Method = "POST";
//对发送的数据不使用缓存
httpReq.AllowWriteStreamBuffering = false;
//设置获得响应的超时时间(300秒)
httpReq.Timeout = 300000;
httpReq.ContentType = "multipart/form-data; boundary=" strBoundary;
long length = fs.Length postHeaderBytes.Length boundaryBytes.Length;
long fileLength = fs.Length;
httpReq.ContentLength = length;
try
{
progressBar.Maximum = int.MaxValue;
progressBar.Minimum = 0;
progressBar.Value = 0;
//每次上传4k
int bufferLength = 4096;
byte[] buffer = new byte[bufferLength]; //已上传的字节数
long offset = 0; //开始上传时间
DateTime startTime = DateTime.Now;
int size = r.Read(buffer, 0, bufferLength);
Stream postStream = httpReq.GetRequestStream(); //发送请求头部消息
postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
while (size > 0)
{
postStream.Write(buffer, 0, size);
offset = size;
progressBar.Value = (int)(offset * (int.MaxValue / length));
TimeSpan span = DateTime.Now - startTime;
double second = span.TotalSeconds;
labTime.Text = "已用时:" second.ToString("F2") "秒";
if (second > 0.001)
{
labSpeed.Text = "平均速度:" (offset / 1024 / second).ToString("0.00") "KB/秒";
}
else
{
labSpeed.Text = " 正在连接…";
}
labState.Text = "已上传:" (offset * 100.0 / length).ToString("F2") "%";
labSize.Text = (offset / 1048576.0).ToString("F2") "M/" (fileLength / 1048576.0).ToString("F2") "M";
Application.DoEvents();
size = r.Read(buffer, 0, bufferLength);
}
//添加尾部的时间戳
postStream.Write(boundaryBytes, 0, boundaryBytes.Length);
postStream.Close();
//获取服务器端的响应
WebResponse webRespon = httpReq.GetResponse();
Stream s = webRespon.GetResponseStream();
//读取服务器端返回的消息
StreamReader sr = new StreamReader(s);
String sReturnString = sr.ReadLine();
s.Close();
sr.Close();
if (sReturnString == "Success")
{
returnValue = 1;
}
else if (sReturnString == "Error")
{
returnValue = 0;
}
}
catch
{
returnValue = 0;
}
finally
{
fs.Close();
r.Close();
}
return returnValue;
}
c#+上传文件至服务器,C# 实现文件上传到服务器相关推荐
- 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录
将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...
- Python监控目录文件夹,并使用SFTP上传目录及文件到linux服务器
Python 扫描监控本地文件夹并进行超大文件上传 方案1:WebUploader大文件分块多线程并发上传 方案2:watchdog目录文件夹监控,paramiko STFP上传服务器 方案3:优化2 ...
- Python实现阿里云aliyun服务器里的文件上传与下载
Python实现阿里云服务器里的文件上传与下载 Python实现阿里云服务器里的文件上传与下载 背景: 正文: 预备环境: 构想: 实现: 注意: 结尾 018.4.15 背景: 老实说,因为现实的各 ...
- 文件上传服务器保存形式,78.上传文件及在服务器保存文件到任意路径
上传文件到服务器是一个常用的操作,而在服务器上保存文件就需要多多用心了.因为你不可能只在一个路径里保存文件,所以需要实践一下保存文件到任意位置.当然,前提是你的应用程序有这样的操作权限. 首先建立一个 ...
- putty ubuntu服务器 上传文件,教你如何使用PuTTY上传文件?
PuTTY是Windows和Unix平台的免费telnet和ssh客户端.该程序主要面向网络管理员和开发人员.该程序是高度可配置的,包括许多选项来调整连接.最初由SimonTatham为Windows ...
- Tomcat配置虚拟路径,使上传文件与服务器及工程文件分离开
为什么80%的码农都做不了架构师?>>> 使用Tomcat虚拟路径可以达到一个怎样的效果呢?简单说你可以把上传的文件放在你想发的任何一个地方,同时可以自己区分 下文件的类型,图 ...
- html文件已传入服务器,把html文件上传到云服务器
把html文件上传到云服务器 内容精选 换一换 为了实现通过NAT Server可使用SSH协议跳转到SAP HANA节点的功能,以及SAP HANA节点和NAT Server互相通过SSH协议跳转的 ...
- 怎么把数据文件上传云服务器,怎么把数据上传导云服务器
怎么把数据上传导云服务器 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数 ...
- winxp上传文件到服务器,通过SQLServer的xp_cmdshell在服务器之间传送文件
xp_cmdshell作为sql Server的扩展存储过程之一,也是sql Server在安全大敌,很多sql安全手册上都要求关闭此过程,这不利用其特性简要实现了一个在sql服务器之间传取文件的功能 ...
- php程序怎么上传服务器,php本地文件上传到远程服务器
利用curl实现把本地服务器的文件通过curl发送请求给远程服务器的php文件接受就实现了上传,还一个是利用ftp来上传方法也是php中的curl操作ftp服务器进行上传. 本地代码如下: heade ...
最新文章
- 数据结构和算法:(3)3.2.1单链表的整表创建
- 创建数据库指定编码集
- mysql安装教程8.0.22_mysql 8.0.22 安装配置方法图文教程
- Python四大金刚之四:集合
- 带前导0的数字三角形(洛谷P5721题题解,Java语言描述)
- Glassnode:比特币正迎来多年以来最大的流动性枯竭
- ASP.NET状态管理详解,让你明明白白
- ImageZoom 图片放大效果
- [Java]图书管理系统
- 推荐5款超实用的小软件,建议先收藏再下载
- AI 生成歌曲《醒来》(可试听)
- 零中频数字接收机原理
- rk3288-linux6.0移植
- 学python-学 Python 都用来干嘛的?
- Kotlin 编码规约
- 联想拯救者pro装华为鸿蒙OS,网友Mate 40 Pro+升级鸿蒙2.0:谷歌服务照样能用
- textarea 中的换行、空格; 如何处理
- 技术支持岗位面试问题汇总,绝对有你遇到的面试题!!
- LeetCode 416 分割等和子集
- ThinkPad T440p 更换实体三键触摸板
热门文章
- 万字详文阐释程序员修炼之道
- web一阶段 day13 阿里矢量图库的使用方法
- 页面置换算法(FIFOLRU)
- EverNote 极致的免费笔记资料管理软件 (数据网络同步、支持PC、Mac与手机多平台) 转自:http://www.iplaysoft.com/evernote.html
- linux设置ipsan_linux 配置IPSAN存储
- 鸿蒙第三代手机,华为第三代折叠屏手机面市 余承东披露今年4月旗舰机启用鸿蒙系统...
- Python 音频: 使用 sounddevice 调用 ASIO 声卡驱动
- 求2020 CFA二级notes资源,谢谢!
- css城市列表,js 获取全国城市列表方法
- Win7系统用键盘替代鼠标的小技巧