0
メモリからファイルをアップロードするコードがあります。メモリからのC#ファイルのアップロード
私は方法1(ディスクからファイルを読み込む)を使用すると、コードが正常に動作します。アップロードしたファイルをテストサーバーから見ることができます。
方法2(私が望む方法)を使用してメモリ内のデータを使用すると、ファイルはサーバーにアップロードされません。
私はいくつかのライブラリからファイルを作成します。これはmemory_streamにあり、ディスクに保存してメモリに再ロードしたくありません。そして、ディスクからのテストファイルは、次のコードのメモリから作成されます。
//code for savigng memory to file
if (AudioStream != null && AudioStream.Length > 0)
{
string path = $"D:\\temp\\r_123.mp3";
FileStream fs = new FileStream(path, FileMode.Create);
AudioStream.Seek(0, SeekOrigin.Begin);
AudioStream.CopyTo(fs);
fs.Close();
}
using (Stream AudioStream = new MemoryStream())
{
// method 1 [working]
//load into memory from file
//using (FileStream fs = File.OpenRead(@"D:\Projects\T1.mp3"))
//{
// fs.CopyTo(AudioStream);
//}
//end of method 1
// method 2, not working
memory_stream.Seek(0, SeekOrigin.Begin);
memory_stream.CopyTo(AudioStream);
// end of method 2
AudioStream.Seek(0, SeekOrigin.Begin);
using (HttpClient httpClient = new HttpClient())
{
using (MultipartFormDataContent form = new MultipartFormDataContent())
{
using (var streamContent = new StreamContent(memory_stream))
{
using (var imageContent = new ByteArrayContent(streamContent.ReadAsByteArrayAsync().Result))
{
imageContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");
form.Add(imageContent, "file", "cls.mp3");
var response = httpClient.PostAsync(to_url, form).Result;
}
}
}
}
}
これを解決する方法はありますか?助けてください!
ありがとうございます!
となり、memorystreamから新しいmemorystreamにデータをコピーする必要はありません。 –