我正在尝试来自http://www.paraesthesia.com/archive/2009/12/16/posting-multipartform-data-using-.net-webrequest.aspx的代码通过 httpwebrequest 进行 POST。
如果我用文本文件尝试相同的代码,那很好。但是,如果我使用 zip 文件执行此操作,那么当重新下载该文件时,它会说它不是有效的 zip。我认为 zip 部分可能会以文本而不是二进制的形式上传。但是,该页面确实说“可以在此处包含二进制内容。不要对其进行 base-64 编码或其他任何内容,只需将其流式传输即可。” 但这似乎不适用于给定的代码。我假设我必须将读取文件的部分更改为流:
using (FileStream fileStream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
stream.Write(buffer, 0, bytesRead);
}
fileStream.Close();
}
也许使用 BinaryReader?不过,我对如何在这种情况下使用它感到有些困惑,或者这甚至是我需要做的。朝着正确的方向轻推会很棒。谢谢!