Изображение повреждено или усечено в NHibernate при использовании byte [] и varbinary (max) - PullRequest
2 голосов
/ 17 декабря 2011

Мне нужно сохранить изображение jpg в базу данных в типе базы данных этого свойства nvarchar (max), поэтому мне нужно сериализовать и десериализовать это свойство следующим образом:

 private byte[] HexStringToObject(string value)
    {
        SoapHexBinary shb = SoapHexBinary.Parse(value);
        return shb.Value;
    }

 private string ObjectToHexString(object value)
    {
        if (value == null)
            return "";

        SoapHexBinary shb = new SoapHexBinary((byte[])value);
        return shb.ToString();
    }

, но есть проблема,, Я не знаю, что проблема связана с методом сериализации или десериализации, когда я хочу увидеть это изображение через:

 public FileResult Initialpicture(int? propertyId)
    {
        if (propertyId == null)
            return null;
        IProperty image = Repository<IProperty>.Get(propertyId);
        if (image.Value == null)
            return null;
        return File((byte[])image.Value, "image/jpg");//Get of Value use deserialize method to get byte[]

, а в браузере я вижу только небольшую часть изображения и ошибку "Изображение повреждено или усечено: "}

в чем проблема?

1 Ответ

2 голосов
/ 17 декабря 2011

Возможно, ваша база данных или ваш ORM, если он у вас есть, урезает байтовый массив, например, до 12000 байт.

...