如何在C#中将文件转换为字节[]?
我收到如何在C#中将文件转换为字节[]?,c#,.net-core,multipartform-data,iformfile,C#,.net Core,Multipartform Data,Iformfile,我收到ifformfile并希望将其转换为字节[],我的代码如下所示: private ProductDto GenerateData(Request product, IFormFile file) { if (file != null) { using (var item = new MemoryStream()) { file.CopyTo(item); item.ToArray();
ifformfile
并希望将其转换为字节[]
,我的代码如下所示:
private ProductDto GenerateData(Request product, IFormFile file)
{
if (file != null)
{
using (var item = new MemoryStream())
{
file.CopyTo(item);
item.ToArray();
}
}
return new ProductDto
{
product_resp = JsonConvert.SerializeObject(product).ToString(),
file_data = item; // I need here byte []
};
}
我尝试了一些东西,但我甚至不确定是否可以在我尝试的过程中将ifformfile
转换为byte[]
,不确定这是否正确
无论如何,谢谢你的帮助。我有一个扩展名:
public static byte[] ToByteArray(this Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (var ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
然后
这回答了你的问题吗?您好@Roxy'Pro您是否解决了问题?为什么不使用
input.CopyTo(ms)相反,如果您真的想强制使用16k缓冲区,则使用input.CopyTo(ms,16*1024)代码>?有道理,但结果将是与您之前的评论相同,该评论链接到类似的讨论.CopyTo
在4.0之前的.NET中不可用,因此,如果在此之前需要支持.NET,则必须执行上述操作。
if (file != null)
{
using (var stream = file.OpenReadStream())
{
return new ProductDto
{
product_resp = JsonConvert.SerializeObject(product).ToString(),
file_data = stream.ToByteArray()
};
}
}