为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
互换的青春 2021-12-24 15:41:20
我正在将我的系统设置为使用 Sendgrid,我有一个关于入站附件的问题。当 Sendgrid 访问我的 API 时,这些是请求中列出的键:[    "headers",    "dkim",    "content-ids",    "to",    "html",    "from",    "text",    "sender_ip",    "envelope",    "attachments",    "subject",    "attachment-info",    "charsets",    "SPF",    "attachment1"]我已经将其中的每一个都记录到了我的 Laravel 日志中,但没有一个给我附件的大小和内容。对不起,如果这是一个愚蠢的问题,但我如何获得附件的大小和内容?与往常一样,一个正确的、解释清楚的答案将被接受和投票。提前致谢。
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

因此,在调查此问题后,问题不在于 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'),

    ]);

}


查看完整回答
反对 回复 2021-12-24
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

当处理来自 Sendgrid 的 webhook 调用时,处理附件的优雅方式是这样的:

  1. $request->input('attachment-info')是一个 json 数组,其中包含有关附件的一些基本信息。您可以迭代其项目。

  2. 然后,您可以使用其中的密钥attachment-info来获取实际文件。例如$request->file('attachment1'),它会给你一个Illuminate\Http\UploadedFile, 从那里你可以获得文件大小,打开它,读取它,存储它,......


查看完整回答
反对 回复 2021-12-24
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信