Php 从视图内的公用文件夹访问资产(Laravel)
我无法访问视图中的资产 这是我的密码Php 从视图内的公用文件夹访问资产(Laravel),php,laravel,phpmailer,Php,Laravel,Phpmailer,我无法访问视图中的资产 这是我的密码 $mail->addAttachment(asset($file), 'receiptFile', 'base64', 'application/octet-stream'); 浏览器显示以下错误: 无法访问文件: 消息 无法发送。邮件程序错误:无法访问文件: --- 如您所见,文件的路径已成功定位 如果Laravel可以找到该文件,为什么会显示错误。尝试以下操作: ->attach( public_path('receiptGener
$mail->addAttachment(asset($file), 'receiptFile', 'base64', 'application/octet-stream');
浏览器显示以下错误:
无法访问文件:
消息
无法发送。邮件程序错误:无法访问文件:
---
如您所见,文件的路径已成功定位
如果Laravel可以找到该文件,为什么会显示错误。尝试以下操作:
->attach(
public_path('receiptGenerator2/public/5a46187d954de.png'), [
'as' =>"attachment.png" ,
'mime' => 'application/octet-stream',
]);
资料来源:
编辑:因为您使用的是phpmail,所以应该可以做到这一点
$mail->addAttachment(public_path($file), 'receiptFile', 'base64','application/octet-stream');
邮件需要完整路径,是的,您可以通过浏览器从该url打开文件,但phpmailer试图访问您的磁盘,因此它试图从/var/www/html/project/获取无效的文件。请尝试这种方式
使用资产并给出图像名称,如果文件是任何文件夹,则给出{{asset'folder\u name/image\u name'}
它的generate也就是说,第一个参数必须是本地文件系统路径;如果你给它一个URL,它将不起作用。PHPMailer不是一个HTTP客户机-有许多其他函数和库可以帮助您实现这一点,因此如果您需要从远程URL获取某些内容作为附件使用,请使用它们。无论如何,您都不应该对本地资源使用本地主机URL,因为这是不必要的低效。您可以将任何内容传递给资产,资产将生成URL,无论该URL是否有效或是否存在,它没有“发现”任何东西什么版本的Laravel?receiptGenerator2/public/5a46187d954de.png位于磁盘上还是以某种方式生成的?版本是5.5.28No路径是绝对正确的。当我把路径放在浏览器上时,浏览器会打开png图像。{{}将使用php命令,如刀片视图中的asset。因为他在控制器中,所以不需要这些。检查这个,这正是我正在做的。我得到了正确的路径。不,我在视图中。我正在使用,所以{}不是必需的。兄弟,我在视图中。它抛出了一个错误。attach是一个未知的方法。我的坏,尝试在视图中发送电子邮件是不正常的,所以我假设您在控制器中。您使用的是laravel mail facade还是PHPmail?我使用的是PHP MailerBro您是冠军。我爱您。我花了3个小时在这方面。谢谢。
{{ asset('5a46187d954de.png') }}