Error al cargar cartas digitales "request entity to large"

Modificado el Jue, 2 Abr a 11:17 P. M.

Cuando da el siguiente error:



Es porque se han puesto fotos que pesan más de 100KB, hay que reducir la calidad de las imágenes de la carta digital, la única manera de saber que productos son, es hablar con la persona que modificó la carta digital y que nos digan los últimos productos modificados.


Para buscar las fotos más grandes hay que ejecutar las siguientes consultas en el SQL:


Productos:


SELECT

    DATALENGTH(i.[Content]) AS Bytes,   -- Tamaño de la imagen en bytes

    i.Id AS ImageId,                    -- Id de la imagen

    p.Id AS ProductId,                  -- Id del producto

    p.Name AS ProductName               -- Nombre del producto

FROM dbo.[Image] i

INNER JOIN dbo.ProductDataSheet pds

    ON pds.ImageId = i.Id

INNER JOIN dbo.Product p

    ON p.Id = pds.ProductId

ORDER BY

    DATALENGTH(i.[Content]) DESC,

    p.Id;



-- Menús digitales con imagen y con al menos una categoría asignada
-- Compatibilidad: SQL Server 2014

SELECT
    DATALENGTH(dm.HeaderImage) AS Bytes, -- Tamaño de la imagen
    dm.Id AS MenuId,                     -- Id del menú
    dm.Name AS MenuName                  -- Nombre del menú
FROM dbo.DigitalMenu dm
WHERE
    dm.HeaderImage IS NOT NULL
    AND EXISTS
    (
        SELECT 1
        FROM dbo.DigitalMenuCategory dmc
        WHERE dmc.DigitalMenuId = dm.Id
    )
ORDER BY
    DATALENGTH(dm.HeaderImage) DESC,
    dm.Id; 


-- Familias activas con imagen y con al menos un grupo TPV asociado
-- Compatibilidad: SQL Server 2014

;WITH ImagesSized AS
(
SELECT
i.Id,
DATALENGTH(i.[Content]) AS Bytes
FROM dbo.[Image] i
WHERE i.[Content] IS NOT NULL
)
SELECT
s.Bytes, -- Tamaño de la imagen
s.Id AS ImageId,      -- Id de la imagen
f.Id AS FamilyId,     -- Id de la familia
f.Name AS FamilyName  -- Nombre de la familia
FROM ImagesSized s
INNER JOIN dbo.Family f
ON f.StyleImageId = s.Id
WHERE
f.DeletionDate IS NULL
AND EXISTS
(
SELECT 1
FROM dbo.FamilyPosGroups fpg
WHERE fpg.FamilyId = f.Id
)
ORDER BY
s.Bytes DESC,
    f.Id; 




-- Categorías activas con imagen y con al menos un grupo TPV asociado
-- Compatibilidad: SQL Server 2014

;WITH ImagesSized AS
(
SELECT
i.Id,
DATALENGTH(i.[Content]) AS Bytes
FROM dbo.[Image] i
WHERE i.[Content] IS NOT NULL
)
SELECT
s.Bytes, -- Tamaño de la imagen
s.Id AS ImageId,         -- Id de la imagen
c.Id AS CategoryId,      -- Id de la categoría
c.Name AS CategoryName   -- Nombre de la categoría
FROM ImagesSized s
INNER JOIN dbo.Category c
ON c.StyleImageId = s.Id
WHERE
c.DeletionDate IS NULL
AND EXISTS
(
SELECT 1
FROM dbo.CategoryPosGroups cpg
WHERE cpg.CategoryId = c.Id
)
ORDER BY
s.Bytes DESC,
    c.Id; 


Un saludo.



PD: Posible todo en uno pero no me cuadra el resultado:


-- Familias + Categorías + Menús + Productos
-- Ordenado por tamaño de imagen
-- Compatibilidad: SQL Server 2014

;WITH ImagesSized AS
(
    SELECT
        i.Id,
        DATALENGTH(i.[Content]) AS Bytes
    FROM dbo.[Image] i
    WHERE i.[Content] IS NOT NULL
)

-- FAMILIAS
SELECT
    'Familia' AS ElementType,        -- Tipo de elemento
    s.Bytes AS Bytes,                -- Tamaño de imagen
    s.Id AS ImageId,                 -- Id de la imagen
    f.Id AS ElementId,               -- Id de la familia
    f.Name AS ElementName            -- Nombre de la familia
FROM ImagesSized s
INNER JOIN dbo.Family f
    ON f.StyleImageId = s.Id
WHERE
    f.DeletionDate IS NULL
    AND EXISTS
    (
        SELECT 1
        FROM dbo.FamilyPosGroups fpg
        WHERE fpg.FamilyId = f.Id
    )

UNION ALL

-- CATEGORÍAS
SELECT
    'Categoría' AS ElementType,      -- Tipo de elemento
    s.Bytes AS Bytes,                -- Tamaño de imagen
    s.Id AS ImageId,                 -- Id de la imagen
    c.Id AS ElementId,               -- Id de la categoría
    c.Name AS ElementName            -- Nombre de la categoría
FROM ImagesSized s
INNER JOIN dbo.Category c
    ON c.StyleImageId = s.Id
WHERE
    c.DeletionDate IS NULL
    AND EXISTS
    (
        SELECT 1
        FROM dbo.CategoryPosGroups cpg
        WHERE cpg.CategoryId = c.Id
    )

UNION ALL

-- MENÚS
SELECT
    'Menú' AS ElementType,           -- Tipo de elemento
    DATALENGTH(dm.HeaderImage) AS Bytes, -- Tamaño de imagen
    NULL AS ImageId,                 -- No usa la tabla Image
    dm.Id AS ElementId,              -- Id del menú
    dm.Name AS ElementName           -- Nombre del menú
FROM dbo.DigitalMenu dm
WHERE
    dm.HeaderImage IS NOT NULL
    AND EXISTS
    (
        SELECT 1
        FROM dbo.DigitalMenuCategory dmc
        WHERE dmc.DigitalMenuId = dm.Id
    )

UNION ALL

-- PRODUCTOS
SELECT
    'Producto' AS ElementType,       -- Tipo de elemento
    s.Bytes AS Bytes,                -- Tamaño de imagen
    s.Id AS ImageId,                 -- Id de la imagen
    p.Id AS ElementId,               -- Id del producto
    p.Name AS ElementName            -- Nombre del producto
FROM ImagesSized s
INNER JOIN dbo.ProductDataSheet pds
    ON pds.ImageId = s.Id
INNER JOIN dbo.Product p
    ON p.Id = pds.ProductId
WHERE
    p.DeletionDate IS NULL
    AND
    (
        p.FamilyId IS NOT NULL
        OR EXISTS
        (
            SELECT 1
            FROM dbo.ProductCategory pc
            WHERE pc.ProductId = p.Id
        )
    )

ORDER BY
    Bytes DESC,
    ElementType,
ElementId;

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo