Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
enviar datos con archivos adjuntos no funciona Cronjob

No sé mucho sobre el trabajo cron, pero tengo un archivo php que envía datos con un archivo adjunto cuando lo ejecuto usando el navegador, funciona bien y se envía el archivo adjunto, pero si uso el trabajo cron para ejecutarlo, nunca va con el archivo adjunto. aquí está la línea de comando del trabajo cron:

 /opt/php54/bin/php /home/username/public_html/path/to/myscript.php

y aquí está el lugar del error en el archivo php, ya que el trabajo cron me envió un correo electrónico con "¡De alguna manera el archivo: hhshd.jpg no existe!" , sin embargo, los datos adjuntos se envían correctamente cuando uso el navegador.

 if (!file_exists("uploads/" . $fileName)) { die("Some how file :$fileName is not exist!"); }

Nota: estoy usando el cronjob de Hostgator.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Problema resuelto, he usado este comando de trabajo cron:

 curl http://yoursite/path/to/publish.php
over 4 years ago · Santiago Trujillo Denunciar

0

Una posible razón es que cuando ejecuta el script a través del navegador, el usuario de Apache puede crear el archivo adjunto y enviarlo.

Pero cuando cronjob no puede crear un archivo adjunto debido a un problema de permiso.

Puede intentar usar 'sudo' en su cronjob o intentar cambiar el permiso del directorio donde está creando el archivo adjunto.

over 4 years ago · Santiago Trujillo Denunciar

0

Lo más probable es que sea un problema de propiedad y permisos. Lo que tiene que poner en su configuración cron depende de dónde lo haya puesto y de qué usuario se ejecuta su servidor web. Si desea que se ejecute a las 5 a. m. todos los días, está en /etc/crontab y www-data es el usuario de su servidor web, necesitaría una entrada como esta:

 0 5 * * * www-data /opt/php54/bin/php /home/username/public_html/path/to/myscript.php

Si está en el propio archivo crontab del usuario del servidor web, omitirá el campo de nombre de usuario. Lo editaría usando crontab -u www-data -e y agregaría una línea como esta:

 0 5 * * * /opt/php54/bin/php /home/username/public_html/path/to/myscript.php

Otro problema puede ser que el directorio de trabajo actual puede ser diferente, por lo que es posible que deba configurar el comando para incluir un cd en el directorio en el que se encuentra su script primero, así:

 cd /home/username/public_html/path/to && /opt/php54/bin/php myscript.php

Si desea recibir un resultado de error de un trabajo cron, configure una variable de entorno MAILTO agregando una línea como esta al archivo cron antes de ejecutar el comando:

 MAILTO=user@example.com
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda