Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.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# 二进制流';0';不包含有效的BinaryHeader。无效的流或对象版本更改_C# - Fatal编程技术网

C# 二进制流';0';不包含有效的BinaryHeader。无效的流或对象版本更改

C# 二进制流';0';不包含有效的BinaryHeader。无效的流或对象版本更改,c#,C#,我知道这个问题是存在的,但它们对我没有帮助,我想把一个动作的文件发布到ConvertToVLV动作,然后返回一个被转换成字节[]的对象,现在当我想把它转换成对象时,我在ByteArrayObject方法中得到以下错误,当到达这一行Video obj=(Video)binForm.Deserialize(memStream) 二进制流“0”不包含有效的BinaryHeader。可能的原因是序列化和反序列化之间的无效流或对象版本更改。 此外,请告诉我ConvertToFLV操作中的contentTy

我知道这个问题是存在的,但它们对我没有帮助,我想把一个动作的文件发布到ConvertToVLV动作,然后返回一个被转换成字节[]的对象,现在当我想把它转换成对象时,我在ByteArrayObject方法中得到以下错误,当到达这一行Video obj=(Video)binForm.Deserialize(memStream)
二进制流“0”不包含有效的BinaryHeader。可能的原因是序列化和反序列化之间的无效流或对象版本更改。
此外,请告诉我ConvertToFLV操作中的contentType是否正确

public ActionResult Index()
        {
            WebRequest request = WebRequest.Create("http://localhost:25220/home/ConvertToFLV");
            request.Method = "POST";
            string path = Request.MapPath("~") + "2.wmv";
            byte[] byteArray = System.IO.File.ReadAllBytes(path);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = byteArray.Length;
            Stream dataStream = request.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            WebResponse response = request.GetResponse();
            dataStream = response.GetResponseStream();
            byte[] convertedBytes = new byte[(int)response.ContentLength];
            dataStream.Read(convertedBytes, 0, (int)response.ContentLength);
            var obj = ByteArrayToObject(convertedBytes);
            dataStream.Close();
            response.Close();
            return View();
        }
public FileResult ConvertToFLV(HttpPostedFileBase file)
        {
            Stream stream = HttpContext.Request.InputStream;
            byte[] result = new byte[HttpContext.Request.ContentLength];
            stream.Read(result, 0, HttpContext.Request.ContentLength);
            Video video = new Video { FLV = result };
            return File(ObjectToByteArray(video), "application/x-www-form-urlencoded");
        }
 private Object ByteArrayToObject(byte[] arrBytes)
        {
            MemoryStream memStream = new MemoryStream();
            memStream.Position = 0;
            BinaryFormatter binForm = new BinaryFormatter();
            memStream.Write(arrBytes, 0, arrBytes.Length);
            memStream.Seek(0, SeekOrigin.Begin);
            Video obj = (Video)binForm.Deserialize(memStream);
            return obj;
        }

    private byte[] ObjectToByteArray(Video obj)
    {
        if (obj == null)
            return null;
        BinaryFormatter bf = new BinaryFormatter();
        MemoryStream ms = new MemoryStream();
        bf.Serialize(ms, obj);
        return ms.ToArray();
    }