Sendgrid 获取入站附件的大小和内容

我正在将我的系统设置为使用 Sendgrid,我有一个关于入站附件的问题。当 Sendgrid 访问我的 API 时,这些是请求中列出的键:


[

    "headers",

    "dkim",

    "content-ids",

    "to",

    "html",

    "from",

    "text",

    "sender_ip",

    "envelope",

    "attachments",

    "subject",

    "attachment-info",

    "charsets",

    "SPF",

    "attachment1"

]

我已经将其中的每一个都记录到了我的 Laravel 日志中,但没有一个给我附件的大小和内容。


对不起,如果这是一个愚蠢的问题,但我如何获得附件的大小和内容?与往常一样,一个正确的、解释清楚的答案将被接受和投票。提前致谢。


互换的青春
浏览 129回答 2
2回答

慕尼黑8549860

因此,在调查此问题后,问题不在于 Sendgrid,而在于我试图使用 Laravel 函数来获取有关附件的详细信息。最后,这是我用来获取有关随请求传入的附加文件的详细信息的代码:$attachedFiles = $request->allFiles();foreach($attachedFiles as $key => $file) {    $doc = new Document;    $fileName = $file->getClientOriginalname();    $doc->fill([        'size'           => $file->getClientSize(),        'mimetype'       => $file->getMimeType(),        'contents'       => fopen($file->getPathname(), 'r'),    ]);}

慕桂英3389331

当处理来自 Sendgrid 的 webhook 调用时,处理附件的优雅方式是这样的:$request->input('attachment-info')是一个 json 数组,其中包含有关附件的一些基本信息。您可以迭代其项目。然后,您可以使用其中的密钥attachment-info来获取实际文件。例如$request->file('attachment1'),它会给你一个Illuminate\Http\UploadedFile, 从那里你可以获得文件大小,打开它,读取它,存储它,......
打开App,查看更多内容
随时随地看视频慕课网APP