【问题标题】:Cannot upload file to Wufoo using their REST API无法使用他们的 REST API 将文件上传到 Wufoo
【发布时间】:2017-03-01 12:54:03
【问题描述】:

在我建立的一个网站上,我们使用 Wufoo 表单来集中数据。所以我有一个简单的表单,我必须使用他们的 rest API 提交给 Wufoo。

我按照他们的文档做了所有事情,但是在将 POST 请求发送到他们的端点时仍然收到错误。

这是我的请求的样子:

$ref = curl_init('https://{domain}.wufoo.com/api/v3/forms/' . WUFOO_FORM_HASH . '/entries.json');
curl_setopt($ref, CURLOPT_HTTPHEADER, array('Content-type: multipart/form-data'));
curl_setopt($ref, CURLOPT_POST, true);
curl_setopt($ref, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ref, CURLOPT_POSTFIELDS, $_formData);
curl_setopt($ref, CURLOPT_USERPWD, WUFOO_API_KEY . ':X');
curl_setopt($ref, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ref, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ref, CURLOPT_SSL_VERIFYHOST, true);
curl_setopt($ref, CURLOPT_FOLLOWLOCATION, true);
$result = json_decode(curl_exec($ref), true);

这是 $_formData 数组:

Array
(
    [Field4] => firstname
    [Field3] => lastname
    [Field5] => email@test.com
    [Field110] => @/var/tmp/random_name/test.txt
)

每当我将文件附加到 Field110 中的请求时,请求都会失败并显示以下错误:

Array
(
    [Success] => 0
    [ErrorText] => Errors have been <b>highlighted</b> below.
    [FieldErrors] => Array
        (
            [0] => Array
                (
                    [ID] => Field110
                    [ErrorText] => This file was NOT successfully uploaded. Please try again.
                )

        )

)

以前有人遇到过这个问题并知道任何解决方案吗? 我不得不提一下,我必须使用 Wufoo rest API 来提交这个。

【问题讨论】:

标签: php rest curl wufoo


【解决方案1】:

[Field110] 的值应该是一个 CURL 文件对象。

我在 Github (https://github.com/wufoo/Wufoo-PHP-API-Wrapper/pull/10/commits/094d64436cee405739f5b39bc28f745afed65eb3) 上找到了一个解决方案,其中包括以下行:

$curl_file = curl_file_create($this-&gt;value, mime_content_type($this-&gt;value), pathinfo($this-&gt;value, PATHINFO_BASENAME));

您可能需要替换$this-&gt;value,只需确保它获得/var/tmp/random_name/test.txt 的值并将$curl_file 传递给[Field110]

如果您想看另一个插图,我实际上已经在 WordPress 插件中实现了这一点:https://github.com/friendofdog/better_wfi_wordpress/blob/master/front/post-intermediary.php。环顾第 77 行。

【讨论】:

    【解决方案2】:

    根据错误消息,文件未正确成功上传。这意味着文件的路径、大小或类型存在问题。

    文件的最大大小为 10MB,单个表单中的所有字段的最大大小为 20MB。

    你为什么不使用Wufoo API PHP Wrapper,它允许发布带有文件的条目......

    【讨论】:

    • Wufoo API PHP Wrapperknown issue 文件上传。他们有一个很好的拉取请求,但由于某种原因它还没有合并。
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多