我想通过 HTTP 将文件上传到 PHP 脚本,并且我想通过套接字进行。邮政已经工作正常,只是文件似乎没有正确发送。
首先,我建立我的 HTTP 请求直到文件的开头,然后我将此字符串转换为 ByteArray。我Buffer.BlockCopy
把文件放在这个数组的末尾。使用另一个 BlockCopy,我将结束边界放在数组的末尾。在此之后,我尝试将我的 ByteArray 作为请求(带有标头)发送,但看起来文件没有发送,或者格式错误。
这是我的代码的一部分:
_content = _content
+ "--" + boundary + Environment.NewLine
+ "Content-Disposition: form-data; name=\"" + this._FileVarName + "\"; filename=\"" + Path.GetFileName(this._FilePath) + "\""
+ Environment.NewLine + "Content-Transfer-Encoding: application/octet-stream"
+ Environment.NewLine + Environment.NewLine;
mainContent = this.Combine(Encoding.UTF8.GetBytes(_content), System.IO.File.ReadAllBytes(this._FilePath));
mainContent = this.Combine(mainContent, Encoding.UTF8.GetBytes(Environment.NewLine + "--" + boundary + "--"));
private byte[] Combine(byte[] first, byte[] second)
{
byte[] ret = new byte[first.Length + second.Length];
Buffer.BlockCopy(first, 0, ret, 0, first.Length);
Buffer.BlockCopy(second, 0, ret, first.Length, second.Length);
return ret;
}
有谁知道这个问题并且可以帮助我?