“无法打开文件以供阅读”将PDF从存储附加到可邮寄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“无法打开文件以供阅读”将PDF从存储附加到可邮寄相关的知识,希望对你有一定的参考价值。

你好,我现在有问题

我正在执行“将PDF自动附加到电子邮件页面”。它的工作原理是每行都有一个电子邮件按钮,单击该按钮后,用户将被重定向到根据ID自动附加存储在存储文件夹中的PDF的页面。我试图使PDF失效,它以乱码显示PDF文件的内容,如果在PDF文件上进行dieump,我认为这是正常的。但是,我不断收到错误消息“无法打开文件进行读取”。这是我的代码:

控制器:

  public function sendToCompany(Request $request)

    $filename = request('attachedLetter');
    $letter = \Storage::get('public/coverLetter/'.$filename);


    $data = array(
        'email' => request('company_email'),
        'subject' => request('email_subject'),
        'message' => request('email_message'),
        'attachedLetter' => $letter
    );


        \Mail::to($data['email'])->send(new SendEmailToCompany($data['subject'], $data['message'], $data['attachedLetter']));

可邮寄:

public $content;

// public $attach;

/**
 * Create a new message instance.
 *
 * @return void
 */
public function __construct($subject, $content, $files)

    $this->subject = $subject;
    $this->content = $content;
    $this->attach = $files;


/**
 * Build the message.
 *
 * @return $this
 */
public function build()

    $file = $this->attach;
    dd($file);
    return $this->markdown('email.emailToCompany')->attach($file);


任何帮助将不胜感激。谢谢!

答案

attach方法需要文件路径,而不是文件内容。如果要从存储中附加文件,可以使用attachFromStorage。如果要附加原始数据(文件内容),则可以尝试使用attachData方法。

Laravel 6.x Docs - Mail - Writing Mailables - Attachments

以上是关于“无法打开文件以供阅读”将PDF从存储附加到可邮寄的主要内容,如果未能解决你的问题,请参考以下文章

将图像从隔离存储加载到可观察集合不起作用

如何将 Vuetify v-menu 附加到可滚动列表中的父元素?

使用 PHP 将值插入到可编辑的 PDF 中,并使其保持可编辑状态

如何将特定页面从一个pdf附加到另一个pdf?

Rails 3 - 从视图中渲染 PDF 并附加到电子邮件

附加 Blob 未正确连接 pdf 页面