V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
s609926202
V2EX  ›  PHP

PHP IMAP 保存图片、附件时不能正确获取文件名

  •  
  •   s609926202 · 2022-08-19 09:45:54 +08:00 · 1579 次点击
    这是一个创建于 835 天前的主题,其中的信息可能已经有所发展或是发生改变。
    {
          "type": 3,
          "encoding": 3,
          "ifsubtype": 1,
          "subtype": "VND.MS-EXCEL",
          "ifdescription": 0,
          "ifid": 0,
          "bytes": 158344,
          "ifdisposition": 1,
          "disposition": "attachment",
          "ifdparameters": 1,
          "dparameters": [
            {
              "attribute": "filename",
              "value": "=?GBK?Q?EQ=3Ffor=3FY578B-1&ampampY578B-2=B6=FE=BF=EE=BA=CF=C6=B4&amp?=   =?GBK?Q?nbsp&ampnbsp=3FJ008798H04A0=3F4281=3F.xls?="
            }
          ],
          "ifparameters": 1,
          "parameters": [
            {
              "attribute": "name",
              "value": "=?GBK?Q?EQ=3Ffor=3FY578B-1&ampampY578B-2=B6=FE=BF=EE=BA=CF=C6=B4&amp?=   =?GBK?Q?nbsp&ampnbsp=3FJ008798H04A0=3F4281=3F.xls?="
            }
          ]
    }
    

    上图是其中一个附件,使用 mb_decode_mimeheader 获取不到真正的文件名,未正确解码的都被标记为 ? ,结果如下:

    "EQ?for?Y578B-1&ampampY578B-2 二款合拼&ampnbsp&ampnbsp?J008798H04A0?4281?.xls"
    

    其中 ? 其实是下划线 _

    所以请问如何能获取到正确的文件名?

    第 1 条附言  ·  2022-08-19 11:22:11 +08:00
    原文件名:EQ_for_Y578B-1&Y578B-2 二款合拼  _J008798H04A0_4281_.xls
    3 条回复    2022-08-19 12:44:17 +08:00
    Rache1
        1
    Rache1  
       2022-08-19 11:05:44 +08:00
    源文件名是啥呀,不然怎么判断解出来的是不是对得上
    s609926202
        2
    s609926202  
    OP
       2022-08-19 11:22:28 +08:00
    @Rache1 文件名正确是这个:EQ_for_Y578B-1&Y578B-2 二款合拼  _J008798H04A0_4281_.xls
    reter
        3
    reter  
       2022-08-19 12:44:17 +08:00 via Android
    搜索了一下,rfc 2047 规定了邮件里面如何表达非 ascii 编码的文本,你发的文字就是经过 rfc 2047 规则编码的文本。我不懂 php ,但是 https://www.php.net/manual/en/function.imap-mime-header-decode.php 好像可以用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2638 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:04 · PVG 18:04 · LAX 02:04 · JFK 05:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.