You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 借助 Octokit 上传 PDF 至 GitHub 后文件损坏无法使用问题求助

问题原因

你当前代码的核心错误是对File.ReadAllBytes()返回的字节数组直接调用ToString(),该方法默认返回的是字节数组的类型标识字符串System.Byte[],而非文件的实际内容。上传到仓库的文件存储的只有这个字符串,自然无法作为PDF正常打开。

修复方案

GitHub API 要求二进制文件通过Base64编码后传输,Octokit的CreateFileRequest提供了专门的参数支持二进制文件上传,修改后的代码如下:

// 读取PDF原始二进制内容
byte[] pdfFileBytes = File.ReadAllBytes(@"C:/Temp/CUSTOM.pdf");
// 将二进制内容转为Base64编码字符串
string base64PdfContent = Convert.ToBase64String(pdfFileBytes);
// 执行上传,binary参数设置为true标识传入内容为Base64编码的二进制文件
await gitHubClient.Repository.Content.CreateFile(
    owner,
    repoName,
    filepath,
    new CreateFileRequest("你的提交说明", base64PdfContent, branch, binary: true)
);

关键说明

  • 不要直接对字节数组调用ToString(),该方法不会对二进制内容做编码转换,仅返回类型名称
  • CreateFileRequest的binary参数设为true后,Octokit会自动通知GitHub API对传入的Base64字符串做解码,还原为原始二进制PDF文件存储

内容的提问来源于stack exchange,提问作者Janik313

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:27:03