我使用CURL在PHP中发布数据,如下所示:
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
其中$ args - 参数数组。
问题是其中一个参数的值以“@”开头。根据CURL文档,这意味着我将发送一个文件。在我的情况下,这不是真的。 因此,我收到以下错误消息:创建formpost数据失败。
有没有办法指定我想发送文件的时间,或者“@”只是一个常规字符,它是某个值的一部分?
谢谢, 颊
答案 0 :(得分:2)
您可以使用百分比编码吗?那样你的'@'符号就是%40,而CURL也不会弄乱它们。我们通常对所有帖子字段进行百分比编码。
答案 1 :(得分:1)
从PHP 5.5开始,您可以设置CURLOPT_SAFE_UPLOAD选项以防止以" @"开头的字符串的文件上载行为。例如。
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
PHP 5.5.0的默认值为false,从5.6.0
开始为true