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#使用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
{
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

参考文档:
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
C# SharpMap的简单使用-C/S开发框架
ASP.NET WebApi框架异步实现MultipartContent方式上传文件
使用DeepSeek生成DevExpress表格、窗体、C#模型代码并集成到开发框架|C/S开发框架
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
使用Photoshop PS制作GIF动画(等待窗体GIF图标)|C/S开发框架
Oracle数据库名称有小数点,使用expdp备份失败:ORA|12154: TNS: 无法解析指定的连接标识符|C/S开发框架
ORACLE 使用 expdp 命令导出dmp数据库文件|C/S开发框架
达梦数据库使用DmBulkCopy批导数据解决方案|C/S开发框架
.NET Reactor(.NET混淆器)加壳软件使用|C/S开发框架
CSFramework开发框架使用.NET Reactor加壳软件导致多语言失效|C/S开发框架
ISID字段介绍,能直接用ISID字段作为主键使用吗?|C/S开发框架
CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
达梦数据库 | DM管理工具使用指南|C/S框架网|C/S开发框架
使用.NET8/EFCore访问达梦数据库|C/S框架网|C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
C# SharpMap的简单使用-C/S开发框架
ASP.NET WebApi框架异步实现MultipartContent方式上传文件
使用DeepSeek生成DevExpress表格、窗体、C#模型代码并集成到开发框架|C/S开发框架
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
使用Photoshop PS制作GIF动画(等待窗体GIF图标)|C/S开发框架
Oracle数据库名称有小数点,使用expdp备份失败:ORA|12154: TNS: 无法解析指定的连接标识符|C/S开发框架
ORACLE 使用 expdp 命令导出dmp数据库文件|C/S开发框架
达梦数据库使用DmBulkCopy批导数据解决方案|C/S开发框架
.NET Reactor(.NET混淆器)加壳软件使用|C/S开发框架
CSFramework开发框架使用.NET Reactor加壳软件导致多语言失效|C/S开发框架
ISID字段介绍,能直接用ISID字段作为主键使用吗?|C/S开发框架
CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
达梦数据库 | DM管理工具使用指南|C/S框架网|C/S开发框架
使用.NET8/EFCore访问达梦数据库|C/S框架网|C/S开发框架
其它资料:
什么是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内容管理系统 |
什么是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内容管理系统 |
在线客服
