桌面前端

参考界面

浏览按钮参考代码:

private void btnBrower_Click(object sender, EventArgs e){//创建文件弹出选择窗口(包括文件名)对象OpenFileDialog ofd = new OpenFileDialog();//判断选择的路径if (ofd.ShowDialog() == DialogResult.OK){this.txtFilePath.Text = ofd.FileName.ToString();}filePath = this.txtFilePath.Text;}

上传文件参考代码:

string filePath = "";
private void btnUpload_Click(object sender, EventArgs e){string address = "http://localhost:8080";string[] files = { filePath };uploadFiles(address, files);}
public static string uploadFiles(string url, string[] files){Console.WriteLine(files.Length);// 设置参数HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;CookieContainer cookieContainer = new CookieContainer();request.CookieContainer = cookieContainer;request.AllowAutoRedirect = true;request.Method = "POST";string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;const string filePartHeaderTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" +"Content-Type: application/octet-stream\r\n\r\n";//string boundary = "kenny";          // 边界符byte[] beginBoundaryBytes = Encoding.UTF8.GetBytes("--" + boundary + "\r\n");  // 边界符开始。【☆】右侧必须要有 \r\n 。byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); // 边界符结束。【☆】两侧必须要有 --\r\n 。byte[] newLineBytes = Encoding.UTF8.GetBytes("\r\n"); //换一行MemoryStream memoryStream = new MemoryStream();List<string> lstFiles = new List<string>();foreach (string fileFullName in files){if (File.Exists(fileFullName)){lstFiles.Add(fileFullName);}}int i = 0;foreach (var fileFullName in lstFiles){FileInfo fileInfo = new FileInfo(fileFullName);string fileName = fileInfo.Name;fileName = DateTime.Now.ToString("yyyyMMddHHmmss") +"-"+ fileName;string fileHeaderItem = string.Format(filePartHeaderTemplate, "file", fileName);byte[] fileHeaderItemBytes = Encoding.UTF8.GetBytes(fileHeaderItem);if (i > 0){// 第一笔及第一笔之后的数据项之间要增加一个换行 memoryStream.Write(newLineBytes, 0, newLineBytes.Length);}memoryStream.Write(beginBoundaryBytes, 0, beginBoundaryBytes.Length);  // 2.1 写入FormData项的开始边界符memoryStream.Write(fileHeaderItemBytes, 0, fileHeaderItemBytes.Length); // 2.2 将文件头写入FormData项中int bytesRead;byte[] buffer = new byte[1024];FileStream fileStream = new FileStream(fileFullName, FileMode.Open, FileAccess.Read);while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0){memoryStream.Write(buffer, 0, bytesRead);        // 2.3 将文件流写入FormData项中}i++;}memoryStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);    // 2.4 写入FormData的结束边界符request.ContentLength = memoryStream.Length;Stream requestStream = request.GetRequestStream();memoryStream.Position = 0;byte[] tempBuffer = new byte[memoryStream.Length];memoryStream.Read(tempBuffer, 0, tempBuffer.Length);memoryStream.Close();requestStream.Write(tempBuffer, 0, tempBuffer.Length);  // 将内存流中的字节写入 httpWebRequest 的请求流中requestStream.Close();//Console.WriteLine("111");//发送请求并获取相应回应数据HttpWebResponse response = request.GetResponse() as HttpWebResponse;//直到request.GetResponse()程序才开始向目标网页发送Post请求Stream instream = response.GetResponseStream();StreamReader sr = new StreamReader(instream, Encoding.UTF8);//返回结果网页(html)代码string content = sr.ReadToEnd();string statusCode = response.StatusCode.ToString();return statusCode;}

后端

使用springboot官方实例
见:
https://spring.io/guides/gs/uploading-files/

https://github.com/spring-guides/gs-uploading-files

附:

可参考:
c# 批量上传文件,后台使用springboot MultipartFile接收:
https://blog.csdn.net/yongjiutongmi53151/article/details/100160994

前后端全用C#,可参考:
客户端(Winform窗体)上传文件到服务器(web窗体)简单例子:
https://www.cnblogs.com/xielong/p/5711000.html

C# winform界面上传附件到服务器(springboot)相关推荐

  1. ueditor上传附件显示服务器返回错误

    ueditor上传附件显示服务器返回错误, 百度了很多,基本是json错误的原因,可是我将我的json字符串在线转是可以的 后来将 response.getWriter().print("{ ...

  2. java fileupload上传附件到服务器,可携带参数(简单易用)可跨域,看这篇就够了

    一个很简单实用的上传附件实例 首先主要用到的包: 先看服务端代码,我这里是用了Servlet,在web.xml配置 <servlet><servlet-class>com.fi ...

  3. java的图形界面上传附件_Java图形界面(GUI) 动态获取上传或下载文件的路径问题...

    最近做一个文件的上传与下载时遇到了动态获取路径的问题,在此总结一下. //动态获取上传文件路径的代码 int result = 0; File file = null; String path = n ...

  4. 上传附件显示服务器i o错误,电脑中打开CDR文件出现I/O读错误提示的解决方法

    ‍ CorelDraw是一款专业图形设计软件,平面设计.网页设计等领域都会涉及.如果出现打开电脑中的CDR文件后,提示"I/O读错误"的情况,应该要如何进行解决呢?这时,我们可以参 ...

  5. 上传附件删除、session清空问题

    最近因为项目的需要,将客户端附件上传至服务器,附件上传的位置是IIS目录下的文件夹,经过处理之后.必须将该附件删除. 程序发布之后,使用该功能,结果项目无法运行.必须要重新启动IIS才可以重新运行整个 ...

  6. c winform 上传文件到mysql_WinForm上传文件至服务器

    /// /// WebClient上传文件至服务器 /// /// 文件名,全路径格式 /// 服务器文件夹路径 /// public bool Upload(string localFilePath ...

  7. 服务器如何检测当前网站php版本,以及修改php上传附件参数

    我司网站管理助手环境下支持多版本php,某些原因需要更改php的参数配置,但由于没有修改当前使用的php,导致没有看到生效.检测当前网站的php版本很简单: <?php phpinfo(); ? ...

  8. 附件上传到文件服务器,文件服务器 上传附件

    文件服务器 上传附件 内容精选 换一换 WAF支持拦截multipart/form-data格式的数据包.您可以提交工单申请配置拦截multipart/form-data格式的数据包.Multipar ...

  9. C 上传文件到服务器(含接收端源码)

    2019独角兽企业重金招聘Python工程师标准>>> 本文demo下载地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail ...

  10. SAP 没有QM02权限的情况下如何为一个质量通知单单据上传附件?

    SAP 没有QM02权限的情况下如何为一个质量通知单单据上传附件? 正常情况,我们可以在QM01/QM02事务代码创建或者修改一个Quality Notification(质量通知单)的时候上传附件. ...

最新文章

  1. ueditor编辑器和at.js集成
  2. vue.js 每次循环五个数据_AutoML数据增广
  3. Ansible 基础-介绍
  4. 扩展运算符,Object.assign
  5. P1160-队列安排【链表】
  6. 计算机网络(十三)-数据链路层-动态分配信道
  7. mysql 单表查询
  8. 如何识别哭泣csdn_如何让敏感的孩子,不再那么敏感?不是溺爱,而是懂得这些方法...
  9. 把感知机组装在一起就是神经网络了?
  10. 算法竞赛入门经典—C++入门
  11. 《计算机网络(第七版)谢希仁 编著》部分课后答案
  12. ir2104s的自举电容_一文看懂ir2110自举电容的选择 - 全文
  13. 证件照还用去照相馆别费钱了自己就能搞定
  14. 【TensorFlow】官方例子mnist_with_summaries.py在windows下运行tensorboard
  15. pytorch cuda
  16. PAT——1121 Damn Single 甲级
  17. 计算机二级最难的excel题,计算机二级什么最难?excel函数啊!
  18. c语言参悟之旅,Activity生命周期管理之三——S...-《C语言参悟之旅》-读书笔记...-C++函数参数小结_169IT.COM...
  19. [计算机毕业设计]关联挖掘的服装推荐系统
  20. Mini-KMS_Activator激活office2010使用教程

热门文章

  1. 简单的Java串口通讯应答示例
  2. CKEditor设置背景图片及宽高
  3. C# Winform关于控件TabControl闪烁的问题
  4. 四元数和欧拉角在线转换
  5. 《纽约邮报》手机客户端推送系统被黑 黑客发送抒情诗
  6. Node学习记录: mongodb
  7. mysql_error 1030
  8. jsp页面输出excel文件乱码解决方案
  9. 1.大数据架构详解:从数据获取到深度学习 --- 大数据的本质
  10. 63.Linux/Unix 系统编程手册(下) -- 其他备选的IO模型