我正在使用laravel / lumen。我能够在我的存储目录中使用Storage::disk("local")->put();
保存文件。但是现在我想将这些文件中的一些附加到电子邮件中并发送,这是通过我得到的错误来完成的
lumen.ERROR:异常'Swift_IoException',消息'无法打开文件进行读取
现在我读了一些关于符号链接的内容,我试过但是根本没有改变结果,我仍然无法将我的存储文件夹中的文件附加到我的电子邮件中。
这是我的目录结构:
/家庭/ XXXXXX /:
-example.app
- 存储
---应用
- - 上市
-public_html
--example.app
- -存储
像这样附加文件:
foreach ($params["attachments"] as $attachment) {
$mail->attach($attachment["file"], [
'as' => $attachment["name"],
'mime' => $attachment["mime"]
]);
}
您已经意识到attach()
方法需要文件的完整路径。但是,其他人可能会发现有用的知识如何实现。因此,如果您使用本地存储的默认设置,您可以通过调用storage_path()
帮助程序来获取完整路径。这条路:
/*
* This will return the full path to the file:
*
* /path/to/laravel/storage/app/attachment/path
*/
storage_path('app/' . $attachment['file']);
好的,当你传递一个完整的url而不是文件的真实路径时,显然swift邮件程序会失败。不知道这个,不知道这是一个错误还是它是由设计完成的。