Laravel邮件队列和excel附件导致JSON_ERROR_UTF8

时间:2017-03-07 13:44:03

标签: laravel laravel-5 phpexcel

在尝试对包含附件的邮件进行排队时遇到问题。

如果没有排队,我可以毫无问题地发送电子邮件。附件是正确的,可以打开。当我尝试排队该电子邮件时出现问题。由maatwebsite / excel lib生成的Excel

错误:

InvalidPayloadException in Queue.php line 89:
 5

我发现这部分代码抛出了这个错误:

...\vendor\laravel\framework\src\Illuminate\Queue\Queue.php
protected function createPayload($job, $data = '', $queue = null)
{
    $payload = json_encode($this->createPayloadArray($job, $data, $queue));

    if (JSON_ERROR_NONE !== json_last_error()) {
        throw new InvalidPayloadException;
    }

    return $payload;
}

我的代码如下:

excel = Excel::create('Report', function($excel) {
        $excel->sheet('Sheetname', function($sheet) {
            $sheet->fromArray([['aaa']]);
        });
    })->string('xlsx');

    Mail::to('mail@mail.com')
        ->queue(new Report($excel));

我试过utf8_encode($ excel),但后来我无法打开邮件附件,我认为生成excel的任何操作都会破坏文件...

当我尝试从磁盘附加excel文件时,也会出现此问题。

任何帮助?

0 个答案:

没有答案