【问题标题】:Adding Email Attachments From Local Storage从本地存储添加电子邮件附件
【发布时间】:2017-07-25 19:08:31
【问题描述】:

我正在使用 laravel/lumen。我可以在我的存储目录中使用Storage::disk("local")->put(); 保存文件。但是现在我想将其中一些文件附加到电子邮件中并发送,这是通过一项工作完成的,我得到的错误是

lumen.ERROR: 异常 'Swift_IoException' 带有消息'无法 打开文件进行阅读

现在我读到了一些关于符号链接的内容,我尝试过,但这并没有改变结果,我仍然无法将存储文件夹中的文件附加到我的电子邮件中。

这是我的目录结构:

/home/xxxxxx/:

-example.app

--存储

---应用程序

----公开

-public_html

--example.app

---存储

像这样附加文件:

foreach ($params["attachments"] as $attachment) {
    $mail->attach($attachment["file"], [
        'as' => $attachment["name"],
        'mime' => $attachment["mime"]
    ]);
}

【问题讨论】:

  • 你是如何附加文件的?
  • 编辑了我的帖子。
  • 什么是$params["attachments"]?它们来自表格吗?
  • 它基本上是一个文件名数组,不,它们不是来自表单。

标签: laravel storage lumen


【解决方案1】:

您已经意识到attach() 方法需要文件的完整路径。但是,其他人可能会发现有用的知道如何实现这一点。因此,如果您使用 local 存储的默认设置,则可以通过调用 storage_path() 帮助程序来获取完整路径。这样:

/*
 * This will return the full path to the file:
 *
 * /path/to/laravel/storage/app/attachment/path
 */
storage_path('app/' . $attachment['file']);

【讨论】:

    【解决方案2】:

    好吧,当您传递完整的 url 而不是文件的真实路径时,显然 swift mailer 会失败。不知道这个,不知道是bug还是设计造成的。

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 2014-02-18
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 2019-12-02
      相关资源
      最近更新 更多