Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中将文件转换为字节[]?_C#_.net Core_Multipartform Data_Iformfile - Fatal编程技术网

如何在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)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()
            };
        }
    }