• Hola.

    Desde hace unos días estoy teniendo un problema al subir archivos CSV.

    Cualquier archivo CSV cuya primera columna comience con ID; es rechazado con el mensaje:

    «Lo siento, no tienes permisos para subir este tipo de archivo.»

    Para descartar problemas del entorno hice las siguientes pruebas:

    • Probé en dos hostings diferentes:
      • Kinsta (sitio en producción).
      • Banahosting (instalación nueva de WordPress).
    • Probé tanto en:
      • Un sitio con WooCommerce.
      • Una instalación limpia de WordPress, sin WooCommerce.
    • Desactivé Wordfence.
    • Desactivé todos los plugins.
    • Cambié al tema por defecto Twenty Twenty-Six.
    • Probé tanto en Chrome como en Firefox.
    • Probé la subida desde:
      • WooCommerce → Productos → Importar.
      • Medios → Añadir nuevo.

    Las imágenes, PDF y TXT se suben correctamente.

    Para aislar el problema creé un CSV mínimo con el siguiente contenido:

    ID;Precio1;100

    Ese archivo también es rechazado.

    Sin embargo, si únicamente cambio el encabezado por:

    ID Producto;Precio

    o

    SKU;Precio

    el archivo se sube correctamente.

    Revisando el problema encontré lo siguiente:

    • get_allowed_mime_types() incluye correctamente:
    [csv] => text/csv
    • Sin embargo, wp_check_filetype_and_ext() devuelve:
    array(    'ext' => false,    'type' => false,    'proper_filename' => false,)
    • Además, finfo_file() detecta el primer archivo como:
    application/x-sylk

    Mientras que si el encabezado se cambia a ID Producto o SKU, pasa a detectarlo como:

    text/plain

    Lo que me llama la atención es que WooCommerce exporta los CSV utilizando ID como primera columna por defecto. Por ejemplo:

    ID,"Precio rebajado","Precio normal"

    (o sus equivalentes según el idioma).

    Es decir, un usuario podría exportar un CSV desde WooCommerce, modificar únicamente los precios e intentar volver a importarlo, encontrándose con este error sin haber cambiado la estructura del archivo.

    ¿Es un cambio esperado en la validación de WordPress o podría tratarse de un problema relacionado con la detección application/x-sylk por parte de PHP/Fileinfo?

Viendo 1 respuesta (de un total de 1)
  • Moderador Sergio

    (@kallookoo)

    Hola @danielbmxd

    Ni es una cosa ni la otra, por lo que comentas diría en como se creo/guardo el CSV.

    Abre el CSV que te da problemas, abre un nuevo archivo de excel con tu programa o un servicio online como google spreadsheets. Copia el contenido (sin formato), lo guardas y pruebalo.

    Resumiendo: Ese archivo esta usando un formato obsoleto como de hace 30 años o mas.

Viendo 1 respuesta (de un total de 1)

Debes estar registrado para responder a este debate.