1

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;
    }

誰もこの問題を知っていて、私を助けることができますか?

4

0 に答える 0