Los archivos CSV que comienzan con «ID;» son rechazados
-
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;100Ese archivo también es rechazado.
Sin embargo, si únicamente cambio el encabezado por:
ID Producto;Precioo
SKU;Precioel 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-sylkMientras que si el encabezado se cambia a
ID ProductooSKU, pasa a detectarlo como:text/plainLo que me llama la atención es que WooCommerce exporta los CSV utilizando
IDcomo 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-sylkpor parte de PHP/Fileinfo? - Probé en dos hostings diferentes:
Debes estar registrado para responder a este debate.