<html lang="es-es" dir="ltr"><head></head><body>### [Cómo conservar el nombre de archivo original para las cargas de archivos](https://wpforms.com/developers/how-to-retain-the-original-file-name-for-file-uploads/)

**Publicado:** 14 de abril de 2023
**Autor:** Equipo Editorial

**Extracto:** En este tutorial, te mostraremos cómo conservar el nombre de archivo original en tus archivos cargados desde la notificación por correo electrónico. 

**Contenido:**

## Introducción

¿Te gustaría conservar el nombre de archivo original en los archivos dentro de las notificaciones por correo electrónico cuando has habilitado la opción **Habilitar archivos adjuntos de carga de archivos** en las opciones **Avanzadas** de la pestaña **Notificaciones**? Por defecto, WPForms agregará una cadena de letras y números al nombre de archivo original por motivos de seguridad y en caso de nombres de archivo duplicados. Sin embargo, si deseas eliminar esta capa de seguridad, puedes lograrlo fácilmente con un filtro PHP. ¡En este tutorial, te mostraremos exactamente cómo lograrlo!

Este fragmento solo se puede usar en la versión 6.2 de WordPress.

## Creación del formulario

Comenzaremos creando un nuevo formulario. Para el propósito de esta documentación, estamos haciendo una hoja de registro simple para un equipo de béisbol recreativo para que pidan sus propias camisetas de equipo. Tendremos información básica pero también agregaremos un campo de **Carga de archivos** para permitir que los equipos carguen su propio diseño.

![comienza creando tu formulario y agregando tus campos.](https://wpforms.com/wp-content/uploads/2023/04/wpforms-orignal-file-name-create-form.jpg)

Si necesitas ayuda para crear tu formulario, [consulta esta útil guía](https://wpforms.com/docs/creating-first-form/ "Creación de tu primer formulario").

## Habilitación de la opción para incluir el archivo adjunto

Una vez que se agregan los campos del formulario, haz clic en la pestaña **Configuración** dentro del constructor del formulario. Luego, dirígete a la pestaña **Notificaciones** y desplázate hacia abajo para abrir las opciones **Avanzadas**.

Haz clic para activar el botón **Habilitar archivos adjuntos de carga de archivos** y selecciona los campos para los que deseas incluir los archivos adjuntos. En este tutorial, solo tenemos un campo de **Carga de archivos**, por lo que solo necesitaremos agregar ese campo a esta sección.

![desde la pestaña Notificaciones, abre Avanzadas y haz clic en el botón para Habilitar Archivos Adjuntos](https://wpforms.com/wp-content/uploads/2023/04/wpforms-enable-file-uploads.jpg)

## Adición del fragmento

A continuación, vamos a agregar el fragmento a nuestro sitio. Si necesitas ayuda sobre cómo agregar fragmentos a tu propio sitio, [consulta este tutorial para obtener más información](https://wpforms.com/developers/how-to-add-custom-php-or-javascript-for-wpforms/ "Cómo agregar PHP o JavaScript personalizado para WPForms").

Ten en cuenta que al agregar este fragmento, será el mismo para todos los formularios y cargas de archivos.

```

/**
 * Conservar el nombre de archivo original en las cargas de archivos
 *
 * @link https://wpforms.com/developers/how-to-retain-the-original-file-name-for-file-uploads/
 */
  
function wpf_emails_send_email_data( $email, $email_obj ) {

	if ( empty( $email[ 'attachments' ] ) ) {
		return $email;
	}

	if ( ! isset( $email_obj-&gt;form_data, $email_obj-&gt;notification_id, $email_obj-&gt;fields ) ) {
		return $email;
	}

	$form_data       = $email_obj-&gt;form_data;
	$notification_id = $email_obj-&gt;notification_id;
	$entry_fields    = $email_obj-&gt;fields;

	if (
		empty( $entry_fields ) ||
		empty( $form_data[ 'settings' ][ 'notifications' ][ $notification_id ][ 'file_upload_attachment_enable' ] ) ||
		empty( $form_data[ 'settings' ][ 'notifications' ][ $notification_id ][ 'file_upload_attachment_fields' ] )
	) {
		return $email;
	}

	$attachment_fields       = $form_data[ 'settings' ][ 'notifications' ][ $notification_id ]['file_upload_attachment_fields'];
	$entry_attachment_fields = [];

	foreach ( $attachment_fields as $field_id ) {
		if ( ! empty( $entry_fields[ $field_id ] ) ) {
			$entry_field = $entry_fields[ $field_id ];

			if ( ! empty( $entry_field[ 'style' ] ) &amp;&amp; $entry_field[ 'style' ] === 'modern' ) {
				foreach ( $entry_field[ 'value_raw' ] as $file ) {
					$entry_attachment_fields[ $file[ 'file' ] ] = $file;
				}
			} else {
				$entry_attachment_fields[ $entry_field['file'] ] = $entry_field;
			}
		}
	}

	$attachments = [];

	foreach ( $email[ 'attachments' ] as $attachment ) {
		$file_name = basename( $attachment );

		if ( empty( $entry_attachment_fields[ $file_name ][ 'file_user_name' ] ) ) {
			$attachments[] = $attachment;

			continue;
		}

		$attachments[ $entry_attachment_fields[ $file_name ][ 'file_user_name' ] ] = $attachment;
	}

	$email[ 'attachments' ] = $attachments;

	return $email;
}

add_filter( 'wpforms_emails_send_email_data', 'wpf_emails_send_email_data', 30, 2 );
```

Este fragmento buscará cualquier archivo adjunto al correo electrónico y, en lugar de agregar la cadena cifrada, conservará el nombre de archivo original que se cargó.

Ahora, en lugar de que nuestro archivo adjunto de correo electrónico tenga un nombre de archivo como **theres-no-base-like-home-svg-8abdd7ea434445587fb0e1b560b137b1.png**, el nombre después de agregar el fragmento será **theres-no-base-like-home-svg.png**.

![después de agregar el fragmento, el nombre del archivo adjunto será el nombre de archivo original.](https://wpforms.com/wp-content/uploads/2023/04/wpforms-retain-file-name.jpg)

El nombre del archivo se cifra para evitar que se descubran manualmente las URL correctas para descargar esos archivos del servidor, así como para proteger los archivos de nombres duplicados. El uso de este fragmento anulará estas medidas de seguridad que WPForms implementa.

¡Y eso es todo! Has utilizado con éxito un filtro PHP para conservar el nombre de archivo original para los archivos adjuntos en tus notificaciones por correo electrónico. ¿También te gustaría modificar el tiempo que tienen tus visitantes para cargar archivos más grandes? Echa un vistazo a nuestro artículo sobre [Cómo cambiar el tiempo de espera en la carga de archivos moderna](https://wpforms.com/developers/how-to-change-the-timeout-on-the-modern-file-upload/ "Cómo cambiar el tiempo de espera en la carga de archivos moderna").

**Categorías:** Tutoriales

**Etiquetas:** Carga de archivos, PHP

---</body></html>