【问题标题】:Uploading zip file. When downloading, it's corrupt上传 zip 文件。下载的时候就坏了
【发布时间】:2012-02-14 14:21:01
【问题描述】:

我正在使用以下代码将 zip 文件上传到 Bugzilla:

bug.AppendAttachment("someComment", "application/octet-stream", "somedata",
"filePath", bugId, false, false, false, "someSummary");

错误参数是: 1.is_Url 2.is_patch 3. is_private

文件已上传,当我登录 Bugzilla 并下载 id 时,会出现一条消息,提示它已损坏或损坏,无法打开。为什么会这样?当我手动上传时,一切正常。

【问题讨论】:

  • 这里的“somedata”到底是什么?它是 zip 文件的内容吗?因为 zip 文件是二进制内容...
  • 请提供您正在使用的 API 的链接。我能找到的最接近的是oss.dbc.dk/bugzproxy/html/index.html,它没有AppendAttachment 方法。
  • @ziesemer 是的,我正在使用 bugzproxy,并添加了添加附件的方法:bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/…
  • @JonSkeet 嗯,我以为它只是一个字符串。
  • @Srcee:它说它是 base64 ......你有对数据进行 base-64 编码吗?基本上你没有向我们展示你是如何获得真实数据的,因为“somedata”显然不是一个zip文件......

标签: c# zip


【解决方案1】:

我们需要看到您添加AppendAttachment 以进一步回答这个问题。但是,根据http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/Bug.html#add_attachment,您需要确保您传递给“数据”的任何内容都是正确的Base64-encoded。

如果 somedata 是您直接传递给 data 的内容,您需要首先使用 http://msdn.microsoft.com/en-us/library/dhx0d524.aspx 将二进制数据(Zip 文件)编码为 Base64。

如果您在使用 Base64 编码之前的任何时候尝试将二进制数据存储为字符串,则会损坏您的有效负载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多