首页 > 编程语言 >C# httpclient上传文件

C# httpclient上传文件

时间:2024-08-09 12:27:20浏览次数:19  
标签:文件 C# fileStream file var new 上传 httpclient

/// <summary>
/// 上传文件
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
[HttpPost, Route("UploadFile")]
[NonAuthorize]
public async Task<Response<string>> UploadFile(IFormFile file)
{
    if (file == null || file.Length == 0)
    {
        return ResultBuilder.FailResult("", "文件不存在");
    }
    var requestUrl = $"{CommonConfig.ZFUrl}/special/upload/file";
    // 读取文件
    Stream fileStream = file.OpenReadStream();
    // 实例化multipart表单模型
    var formData = new MultipartFormDataContent();
    // 设定文件类型表单项,使用StreamContent存放文件流
    //文件名不能带中文 Todo后面改成文件id
    string encodedFileName = Uri.EscapeDataString(file.FileName);
    formData.Add(new StreamContent(fileStream), "file", encodedFileName);
    // 实例化HttpClient
    _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", CommonConfig.ZFToken);
    // 发送请求
    HttpResponseMessage result = await _httpClient.PostAsync(requestUrl, formData);
    // 接受结果
    var responseContent = await result.Content.ReadAsStringAsync();
    _log.Info($"文件上传: {responseContent}");

    fileStream.Close();
    return ResultBuilder.SuccessResult("文件上传成功");

}

  

file.FileName文件名不能带中文

标签:文件,C#,fileStream,file,var,new,上传,httpclient
From: https://www.cnblogs.com/ShenJA/p/18350557

相关文章

  • python-docx 将文档根据标题二拆分为多个docx文件
    python-docx将文档根据标题二拆分为多个docx文件时隔好久,又开始搞文档了感觉搞来搞去还不如手动复制粘贴得了……只是文本内容–>简单文本内容自定义样式保持不变(有点难度)提取文档中的图片、表格(简单)按照顺序还原图片、表格到文档中,并且不改变样式(累了,毁灭吧)题注、......
  • WSL+pycharm
    1.复制文件cpwindows文件路径wsl文件路径2.更改文件权限:你可以使用chmod命令来更改/home/project目录的权限,给予写入权限sudochmod+w/home/project删除目录:使用-r(递归)选项来删除目录及其内容:rm-rdirectory_name3.这将解压缩文件到当前目录。如果你想要解......
  • ComfyUI插件:ComfyUI_Noise节点
    前言:学习ComfyUI是一场持久战,ComfyUI_Noise是对ComfyUI中的噪声进行控制的一个插件库,该库可以完成图像噪声的反推,并通过采样再以几乎无损的方式返回原图,通过该库的使用可以更好的帮助图像恢复原始的相貌,非常适合在生成视频领域用作人物转绘使用。祝大家学习顺利,早日成为ComfyUI的......
  • leetcode考试题
       +-------------+----------+|ColumnName|Type|+-------------+----------+|id|int||client_id|int||driver_id|int||city_id|int||status|enum||request_at|varchar|......
  • Cisco Secure Firewall Management Center Virtual 7.4.2 - 思科 Firepower 管理中心
    CiscoSecureFirewallManagementCenterVirtual7.4.2-思科Firepower管理中心软件FirepowerManagementCenterSoftware请访问原文链接:https://sysin.org/blog/cisco-fmc-7/,查看最新版。原创作品,转载请保留出处。实现管理任务的集中化、简化和整合Firepower管理中心......
  • Cisco Firepower 1000 Series FTD Software 7.4.2 & ASA Software 9.20.3 发布下载 -
    CiscoFirepower1000SeriesFTDSoftware7.4.2&ASASoftware9.20.3FirepowerThreatDefense(FTD)Software请访问原文链接:https://sysin.org/blog/cisco-firepower-1000/,查看最新版。原创作品,转载请保留出处。为什么选择CiscoSecure防火墙CiscoSecure防火墙为行......
  • 掀起云端革命!ToDesk云电脑与传统PC电脑的差异分析
    在科技日新月异的今天,传统PC电脑的市场地位正悄然发生变化。随着云计算技术的不断成熟与普及,云电脑逐渐走进大众视野,不同于传统PC电脑的高昂的成本和易退化的硬件性能,云电脑正以其轻成本高性能的优势吸引来越来越多的用户。其中ToDesk云电脑的推出更是掀起了云端革命的新篇章。......
  • HuggingFace:使用 Transformer 对 DNA 序列进行高效大规模嵌入提取
    我有一个非常大的数据框(60+百万行),我想使用转换器模型来获取这些行(DNA序列)的嵌入。基本上,这首先涉及标记化,然后我可以获得嵌入。由于RAM限制,我发现标记化然后将所有内容嵌入到一个py文件中是行不通的。这是我发现的解决方法,适用于大约3000万行的数据帧(但不适用于较大的d......
  • c++中的常用第三方库
    前言hello大家好,我是文宇。正文C++中常用的第三方库有很多,以下是一些常见的库,它们提供了各种功能和工具,方便开发者进行各类应用程序的开发。STL(StandardTemplateLibrary):STL是C++标准库的一部分,包含了一系列的容器、算法和函数对象等。容器包括vector(动态数组)、list(双向......
  • c++中的命名空间
    前言Hello,大家好,我是文宇正文在C++中,命名空间是一种机制,用于将全局命名空间划分为更小的逻辑单元,以避免命名冲突。命名空间提供了一种将全局作用域划分为多个独立的作用域的方式。命名空间的引入是为了解决大型项目中可能出现的命名冲突问题。在一个大型项目中,可能有多个开......