Question

Lorsque je clique sur le bouton d'envoi sur ma page de contact, en essayant de présenter un formulaire qui utilise rapide-mailer, je reçois ceci:

  

Attention: fopen (uploads /)   [Function.fopen]: failed to open   stream: Aucun fichier ou répertoire   /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php   sur la ligne 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

Le chemin complet existe sur le serveur, bien que le message d'erreur indique « pas un tel fichier ou un répertoire. Quel pourrait être le problème? Merci d'avance à tous! Et Joyeux Noël!

Était-ce utile?

La solution

Vous devez fournir le chemin complet uploads pas un chemin realtive parce que cela va être interprété par rapport au fichier de classe qui tente d'ouvrir la pièce jointe.

Essayez d'utiliser realpath avant de passer le chemin de Swift.

  

path = realpath ( '/') ajouts $;

Autres conseils

Merci à tous pour votre aide! Le problème était mon étourderie - j'ai oublié de créer « upload » il y a répertoire. Maintenant, il fonctionne très bien. Merci!

Cela fonctionne pour moi:

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')
]

Et embed-mail.php

<img src="<?= $message->embed($terminal); ?>"/>
<img src="<?= $message->embed($logo); ?>"/>

J'espère que cela fonctionne pour vous

A partir des messages d'erreur, il semble que si vous spécifiez un répertoire dans lequel un chemin de fichier est nécessaire. Peut-être à cause d'une variable manquante qui est censé contenir le nom du fichier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top