PHP, problema Swift-anuncio publicitario
-
13-10-2019 - |
Pregunta
Al hacer clic en botón de envío en mi página de contacto, tratando de presentar un formulario que utiliza Swift-gestor de correo, me sale esto:
Warning: fopen (uploads /) [Function.fopen]: failed to open stream: No existe el fichero o directorio en /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php en la línea 131
Fatal error: Uncaught exception 'Swift_IoException' with message 'Unable to open file for reading [uploads/]' in /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php:133
Stack trace:
#0 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php(77): Swift_ByteStream_FileByteStream->_getReadHandle()
#1 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(660): Swift_ByteStream_FileByteStream->read(8192)
#2 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(337): Swift_Mime_SimpleMimeEntity->_readStream(Object(Swift_ByteStream_FileByteStream))
#3 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(448): Swift_Mime_SimpleMimeEntity->getBody()
#4 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(463): Swift_Mime_SimpleMimeEntity->toString()
#5 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ in /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php on line 133
Existe la ruta completa en el servidor, aunque el mensaje de error dice 'no existe el fichero o directorio. ¿Cual podría ser el problema? ¡Gracias a todos de antemano! Y Feliz Navidad!
Solución
Es necesario proporcionar la ruta completa a uploads
no es una ruta realtive debido a que va a ser interpretado como algo relativo a archivo de clase que intenta abrir el archivo adjunto.
Trate de usar realpath
antes de pasar la ruta de acceso a Swift.
$ path = realpath ( 'cargas /');
Otros consejos
Gracias a todos por su ayuda! El problema era mi despiste - Me olvidé de crear 'subir' directorio de allí. Ahora funciona bien. Gracias!
Esto funciona para mí:
controller.php
$mail = Yii::$app->mailer->compose('@app/mail/embed-mail',
[
'term' => Url::to('@webroot/images/term.png'),
'logo' => Url::to('@webroot/images/LOGO.jpg')
]
Y incrustar-mail.php
<img src="<?= $message->embed($terminal); ?>"/>
<img src="<?= $message->embed($logo); ?>"/>
Espero que esto funcione para usted
A partir de los mensajes de error, parece como si se especifica un directorio en el que se necesita una ruta de archivo. Tal vez debido a una variable que falta que se supone que contiene el nombre del archivo.