我有一段代码可以从内存中上传文件。
如果我使用方法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;
}
}
}
}
}
有关如何解决此问题的任何想法?请帮忙!
提前致谢!
答案 0 :(得分:0)
我会回答我自己的问题。没有关于文件上传代码的问题。
问题是上传网址。该网站是一个asp.net网站。它启用了URL友好设置。所以在URL的末尾没有.aspx。
如果我使用.aspx发布到网址,则不会有文件。从URL中删除aspx代码将正常工作。