C# Http文件上传-简单版

2023-11-09

C# HttpClient

    public static async Task<string> UploadFileAsync(string uri, string fileName, byte[] fileData)
    {
        try
        {
            var httpClient = new HttpClient();
            httpClient.Timeout = TimeSpan.FromSeconds(30f);
            var content = new MultipartFormDataContent();
            content.Add(new ByteArrayContent(fileData), "file", fileName);
            var response = await httpClient.PostAsync(uri, content);
            var str = await response.Content.ReadAsStringAsync();
            return str;
        }
        catch (Exception e)
        {
            UnityEngine.Debug.LogError("Upload failed :"+e);
        }
        return null;
    }

Unity UnityWebRequest

    public static Task<bool> WriteAllBytesAsync(string uri, byte[] bytes)
    {
        var completionSource = new TaskCompletionSource<bool>();
        UnityEngine.Debug.Log("---------------FileServer : Tack Create");
        var fileName = new FileInfo(uri).Name;
        var directoryName = uri.Replace(fileName, string.Empty);
        var formData = new List<IMultipartFormSection>
        {
            new MultipartFormFileSection("file", bytes, fileName, null)
        };
        var request = UnityWebRequest.Post(directoryName, formData);
        UnityEngine.Debug.Log("FileServer : Post");
        request.timeout = DefaultTimeout;
        request.SendWebRequest().completed += _ =>
        {
            if (request.result != UnityWebRequest.Result.Success)
            {
                UnityEngine.Debug.Log($"---------------FileServer : request.result {request.result}");
                completionSource.SetResult(false);
                request.Dispose();
                return;
            }
            UnityEngine.Debug.Log($"---------------FileServer : request.result {request.result}");
            UnityEngine.Debug.Log($"WXBuild: Write Zip Bytes finished {DateTime.Now.ToString("mm分:ss秒:fff毫秒")}");
            completionSource.SetResult(true);
            request.Dispose();
        };

        UnityEngine.Debug.Log($"---------------FileServer : request wait");
        return completionSource.Task;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Http文件上传-简单版 的相关文章

随机推荐

  • Littlevgl的时间显示

    Littlevgl的时间显示 基于stm32的littlevgl RTC时间显示 获取时间 不想看的可以点击 完整代码下载代码 验证效果 效果图在最底 获取RTC时间 放入main函数的while循环里面 void calendar get
  • Obsidian笔记运用及分享

    这是一篇关于Obsidian笔记软件的运用及本人的做的一些笔记分享 以后也会慢慢的根据自己所学 所看的书籍进行笔记的更新 因为存在着之前看的一些内容没有做笔记 所以会导致部分的内容不在笔记上 笔记中的内容有些部分会比较简洁 也有部分的内容是
  • nginx反向代理服务,因配置文件错误导致访问资源时出现404

    最近测试手上的项目 出现访问服务器的资源出现404的错误 这个是不应该会出现的问题 因为在此之前经过测试是没问题 下面是详细情况 1 公司的服务器都是做过nginx反向代理 2 访问路径是在tomcat中配置过虚拟路径 3 前几天服务器有做
  • 数据挖掘及管理系统-机器学习和数据挖掘课程设计

    这学期做的一个课设 在web的基础上加入了简单的聚类算法 并将其可视化 采用springboot freemarker完成 可视化采用echarts 算是对自己学习web以来的转化实践吧 代码地址米其林餐厅数据挖掘管理系统 具体都在READ
  • 对比损失(Contrastive Loss)

    其中 W 是网络权重 Y是成对标签 如果X1 X2这对样本属于同一个类 Y 0 属于不同类则 Y 1 Dw 是 X1 与 X2 在潜变量空间的欧几里德距离 当Y 0 调整参数最小化X1与X2之间的距离 当Y 1 如果X1与X2之间距离大于m
  • 学java从0开始——记录1

    了解我的文章的知道我是学python的 对于java跟看天书一样 但是没办法生活所迫 兜兜转转开始学java 本次学习记录的是了解java语言特点和JAVA JDK环境变量配置 干不干货我不知道 但是我不记录我会忘 一 java语言特点 1
  • linux查看ssh连接数,查看linux中的TCP连接数

    一 查看哪些IP连接本机 netstat an 二 查看TCP连接数 1 统计80端口连接数 netstat nat grep i 80 wc l 2 统计httpd协议连接数 ps ef grep httpd wc l 3 统计已连接上的
  • Vscode 配置 matlab 环境

    文章目录 一 插件安装与配置 二 实例测试 在文章的开始 说明一下我所使用的是 matlab 2016a vscode 系统为 win10 vscode 可以去官网下载 VSCode中文网 Visual Studio Code中文官网 VS
  • Ubuntu18.04 编译安装 ZLMediaKit

    目录 1 下载ZLMediaKit项目代码 2 安装依赖 2 1 安装gcc编译器 2 2 安装cmake 2 3 安装依赖库 3 编译项目 4 运行 5 推流测试 6 使用url规则播放推流 7 参考 1 下载ZLMediaKit项目代码
  • ubuntu切换ssh的root用户登录

    编辑ssh的配置文件 命令 vim etc ssh sshd config 用光标向下翻 找到Authentication部分 找到 PermitRootLogin without password 并注释掉 然后加入 PermitRoot
  • Fiddler抓手机https请求包

    Fiddler 给手机设置代理并抓取https链接 注 有两部分fiddler设置和手机端设置 且配置完成后 使用时确保PC和手机连接同一WiFi 设置方法如下 1 上网搜索fiddler官方版下载 并安装完成后 开启fiddler 2 选
  • 如何收割流量红利?UB Store的直播电商“三宝”

    如何收割流量红利 UB Store的直播电商 三宝 随着消费者购物习惯的转变 网络渠道消费倚重不断增大 电商已成为企业营销的重要触点 电商的营销价值也在用户 平台属性 数据积淀和技术发展的共同促进下不断提升 据国家统计局和艾瑞统计数据显示
  • 【antlr】antlr语法中的fragment

    1 概述 grammar justDemo ID a z A Z
  • 【Freesql】实现动态分组(groupby)

    应用场景 分组条件是a b c d的任意组合 来自前端 前端选了 a就只分组a 选了 a b就分组a b 请问怎么用freesql写出来 select 部分也是来自前端 前端选了 a就只查a 选了 a b就只查a b select a b
  • ubuntu python3安装opencv_ubuntu中给python3安装opencv

    一 安装相关工具包 注意 以下3 4 5 6为可选项 根据需求安装 1 更新库 sudo apt get update sudo apt get upgrade 2 安装从源码构建opencv的相关工具 sudo apt get insta
  • flutter 更改CircleProgressIndicator的颜色

    在flutter中 CircleProgressIndicator 默认颜色为 主题设定的颜色 CircleProgressIndicator的参数有3种 value 0 1的浮点数 用来表示进度多少 valueColor 是animati
  • 云原生Docker搭建chemex资产管理系统

    这篇文章主要讲解如何使用Ubuntu系统安装Docker应用并且搭建Chemex资产管理系统 Chemex数据是存在数据库的 为了方便备份以及管理容器 可利用外部的数据库或者Docker搭建一个数据库出来 我这里就在Docker容器中创建一
  • python单选题考试题目大全

    在Python中要生成随机数 应该使用 A math 模块 B random模块 正确答案 C numpy 模块 D pygame 模块 关于函数的下列说法不正确的是 A 函数可以没有参数 B 函数可以有多个返回值 正确答案 C 函数可以没
  • edge浏览器 您的flash可能被禁用或者版本过低

    转自 http blog sina com cn s blog 540316260102xkp1 html 从Win 8开始 微软的Windows操作系统就已经将Flash Player内嵌 故对于Win 10系统使用微软默认的Edge浏览
  • C# Http文件上传-简单版

    C HttpClient public static async Task