C#使用Multipart form-data方式上传文件及提交其他数据
C#使用Multipart form-data方式上传文件及提交其他数据
C# Code: /// <summary> /// C#使用form-data方式上传文件及提交其他数据 /// </summary> /// <param name="url">接口地址</param> /// <param name="model">参数模型</param> /// <returns></returns> public static string PostFormData(string url, HXQPrivateContractRequest model) { //PDF文件路径 string filePath = model.pdfFile; using (var client = new HttpClient()) { List<ByteArrayContent> list = new List<ByteArrayContent>(); //title:参数 var dataContent = new ByteArrayContent(Encoding.UTF8.GetBytes(model.title)); dataContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "title" }; list.Add(dataContent); //keyword:参数 var dataContent2 = new ByteArrayContent(Encoding.UTF8.GetBytes(model.keyword)); dataContent2.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "keyword" }; list.Add(dataContent2); //logUserPhone:参数 var dataContent3 = new ByteArrayContent(Encoding.UTF8.GetBytes(model.logUserPhone)); dataContent3.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "logUserPhone" }; list.Add(dataContent3); //处理文件内容 List<ByteArrayContent> list2 = new List<ByteArrayContent>(); byte[] bmpBytes = File.ReadAllBytes(filePath); var fileContent = new ByteArrayContent(bmpBytes);//填充图片字节 fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "files",//Name = "file" FileName = Path.GetFileName(filePath) }; list.Add(fileContent); using (var content = new MultipartFormDataContent()) { Action<List<ByteArrayContent>> act = (dataContents) => {//声明一个委托,该委托的作用就是将ByteArrayContent集合加入到MultipartFormDataContent中 foreach (var byteArrayContent in dataContents) { content.Add(byteArrayContent); } }; act(list);//执行act try { var result = client.PostAsync(url, content).Result;//post请求 string data = result.Content.ReadAsStringAsync().Result; return data;//返回操作结果 } catch (Exception ex) { return ex.Message; } } } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 C# Code: public class HXQPrivateContractRequest { public string pdfFile { get; set; } public string title { get; set; } public string keyword { get; set; } public string logUserPhone { get; set; } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加微信
参考文档:
Asp.Net FileUpload类实现上传文件(C/S框架网开源) C#多线程处理多个队列的数据(交叉线程访问及Invoke方法使用) C# 使用List C# 使用设计模式构建通用数据库访问类 C#使用DataBindings属性绑定不同类型的数据源 使用SqlCommand提交数据:命令的Transaction 属性尚未初始化 C#使用using语法自动关闭SQLConnection数据库连接 C# GridView 资料行数据检查使用的方法(ValidateRow与InvalidRowException) WebApi使用HttpClient.PostAsync上传大文件报错解决方案 使用dalBaseDataDict类提交单表数据 ASP.NET WebApi框架异步实现MultipartContent方式上传文件 C#根据字节数据byte[]前2位判断文本文件的Encoding编码格式 C# 不占用文件句柄方式加载图片文件(加载到内存流MemoryStream) Web端使用VUE调用WebApi接口实现用户登录及采用Token方式数据交互 C# Winform 使用SUM CASE WHEN实现动态列交叉数据报表
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |