当前位置: 首页 > news >正文

winform httpclient 多文件上传

客户端

 1                                         //此处放入循环中   
                          //此为服务端上传地址
                          string url = "http://localhost:62114/AppAreaName/DetectImage/UploadFile"; 2 string time = createDto.DetectionTime.ToString("yyyy-MM-dd-HH-mm"); 3 //图片名称 服务端用 4 string ss = "Default" + "_" + time + "_" + detectionCount + "_" + count + ".jpg"; 5 //string ss = (aa++).ToString() + " " + dia.ToString("f3") + " " + ld.ToString("f3") + " " + rr.ToString("f3") + ".bmp"; 6 //MessageBox.Show(ss); 7 //将图片数据流转换为图片并存储 8 Image img; 9 img = BytToImg(imageData); 10 Bitmap map = new Bitmap(img); 11 map.Save(path + "\\" + ss); 12 //Stream imageStream= Stream.Null; 13 FileStream imageStream = new FileStream(path + "\\" + ss, FileMode.Open); 14 content.Add(CreateFileContent(imageStream, ss, "image/jpeg")); 15 count++; 16 17 //using (var client = new HttpClient()) 18 //{ 19 // using (var content = new MultipartFormDataContent()) 20 // { 21 // content.Add(CreateFileContent(imageStream, ss, "image/jpeg")); 22 23 // var response = await client.PostAsync(url, content); 24 // response.EnsureSuccessStatusCode(); 25 // } 26 //}28 29 using (var client = new HttpClient()) 30 { 31 var response = await client.PostAsync(url, content); 32 response.EnsureSuccessStatusCode(); 33 }

服务端代码

 1  [HttpPost]
 2         public async Task<JsonResult> UploadFile()
 3         {
 4             try
 5             {
 6                 var files = Request.Form.Files;
 7 
 8                 //Check input
 9                 if (files == null)
10                 {
11                     throw new UserFriendlyException(L("File_Empty_Error"));
12                 }
13                 int icount = 0;
14                 foreach (var file in files)
15                 {
16                    
17                     if (file.Length > 1048576) //1MB
18                     {
19                         throw new UserFriendlyException(L("File_SizeLimit_Error"));
20                     }
21                     if (string.IsNullOrEmpty(file.FileName))
22                     {
23                         throw new UserFriendlyException(L("File_Empty_Error"));
24                     }
25                     string[] fileNames = file.FileName.Split('_');
26                     var fileObject = new DetectImages();
27                     if (fileNames.Length == 4)
28                     {
29                         if (!DateTime.TryParse(fileNames[1], out var datetime))
30                         {
31                             datetime = DateTime.Now;
32                         }
33                         if (!int.TryParse(fileNames[2], out var count))
34                         {
35                             count = 0;
36                         }
37                         fileObject.DetectTime = datetime;
38                         fileObject.DetectCount = count;
39                     }
40                     byte[] fileBytes;
41                     using (var stream = file.OpenReadStream())
42                     {
43                         fileBytes = stream.GetAllBytes();
44                     }
45 
46                     fileObject.ImageContent = fileBytes;
47                     fileObject.DetectId = 0;
48                     fileObject.TenantId = AbpSession.TenantId;
49                     fileObject.ImageType = file.ContentType;
50                     MemoryStream inputStream = new MemoryStream(fileBytes);
51                     inputStream.Position = 0;
52                     Image img = Image.FromStream(inputStream);
53                     fileObject.ImageWidth = img.Size.Width;
54                     fileObject.ImageHight = img.Size.Height;
55                     inputStream.Dispose();
56                     await _detectImagesManager.SaveAsync(fileObject);
57                     icount++;
58                 }
59                 return Json(new AjaxResponse(new
60                 {
61                     count = icount
62                 }));
63             }
64             catch (UserFriendlyException ex)
65             {
66                 return Json(new AjaxResponse(new ErrorInfo(ex.Message)));
67             }
68         }

 

转载于:https://www.cnblogs.com/ljy0905/p/8668772.html

相关文章:

  • 一维数组高效率解决杨辉三角
  • 使用 Except 和 Intersect
  • ES6 使用forEach遍历数组
  • 初学MySQL基础知识笔记--02
  • Shell报错bash^M /bin/bash^M: bad interpreter: No such file or directory
  • TFRecords文件的生成和读取(1)
  • lis最长递增子序列
  • Python全栈之路系列之深浅拷贝
  • mysql之count,max,min,sum,avg,celing,floor
  • 课堂小练习
  • 【题解】 [POI2012]FES-Festival (差分约束)
  • mac环境下配置nginx
  • 迭代器(Iterator)
  • git设置HTTP代理
  • Box and Ball
  • @angular/forms 源码解析之双向绑定
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • AngularJS指令开发(1)——参数详解
  • Apache的基本使用
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Cumulo 的 ClojureScript 模块已经成型
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • php面试题 汇集2
  • Vultr 教程目录
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 安卓应用性能调试和优化经验分享
  • 高度不固定时垂直居中
  • 工作中总结前端开发流程--vue项目
  • 讲清楚之javascript作用域
  • 使用common-codec进行md5加密
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​第20课 在Android Native开发中加入新的C++类
  • #define用法
  • #pragam once 和 #ifndef 预编译头
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十)c52学习之旅-定时器实验
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)大道至简,职场上做人做事做管理
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET开发不可不知、不可不用的辅助类(一)
  • //解决validator验证插件多个name相同只验证第一的问题
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)