MailChimp Api,解析图像时出错

Posted

技术标签:

【中文标题】MailChimp Api,解析图像时出错【英文标题】:MailChimp Api, Error parsing image 【发布时间】:2018-10-21 21:50:01 【问题描述】:

错误:

类型:http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/ 标题:无效资源状态:400 详细信息:解析图像时出错: 抱歉,不允许使用没有扩展名的文件。实例: ef9dc203-c04a-48bd-95b4-66c46de26b77

PHP 代码

    $apikey = GP('mailchimp_api_key');

    $auth       =    base64_encode( 'user:'.$apikey );

    $list = array(

        'name'=>'File Name',
        'file_data'=>'iVBORw....'
        //'file_data'=>'data:image/png;base64,iVBORw....'
 );

    $json_post = json_encode($list);

    $ch = curl_init();

    $curlopt_url = 'https://us18.api.mailchimp.com/3.0/file-manager/files';

    curl_setopt($ch, CURLOPT_URL, $curlopt_url);

    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Basic '.$auth));
    curl_setopt($ch, CURLOPT_USERAGENT, 'php-MCAPI/3.0');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $json_post);

    $result = curl_exec($ch);
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    echo "<pre>";
    print_r($result);
    echo "</pre>";

我的问题,我想通过 MailChimp Api 上传照片。

错误的原因是什么?

【问题讨论】:

【参考方案1】:

您需要在代码中为$list 数组中的name 参数的值设置文件扩展名。扩展名必须与您上传的文件完全相同。

curl --request POST \
--url 'https://usX.api.mailchimp.com/3.0/file-manager/files' \
--user 'anystring:apikey' \
--header 'content-type: application/json' \
--data '"name": "test.txt", "file_data": "VGhpcyBpcyBhbiBleGFtcGxlIGxpbmUgb2YgdGV4dC4="' \
--include

File Manager Files

【讨论】:

以上是关于MailChimp Api,解析图像时出错的主要内容,如果未能解决你的问题,请参考以下文章

Mailchimp 模板中的圆角 - 基于 CSS 或图像

MailChimp 模板上的背景图像

表格单元格中的 Mailchimp 背景图像

MailChimp (Mandrill) for .NET 为啥电子邮件包含图像?

Mailchimp电子邮件不会自动下载Outlook中的图像

RSS 提要未在我的 Wordpress 提要中的 Mailchimp 时事通讯中显示图像