我需要使用cURL将一些数据发布到PHP页面,并且请求包含三个参数:
我注意到在传输过程中Base64值已损坏。
这是发送请求的代码:
$filename = "img2.jpg"; //A sample image file
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$base64 = base64_encode($data);
$postData = "id=1234&sometext=asdasd&data=" . $base64;
$ch = curl_init("http://mydomain/post.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$httpResponse = curl_exec($ch);
curl_close($ch);
任何提示?
答案 0 :(得分:15)
也许你应该使用urlencode()因为base64字符串中的+
和=
?
答案 1 :(得分:2)
确保帖子数据的大小不超过php.ini文件中的'max_post_size'。
答案 2 :(得分:0)
一个公平的猜测是编码会增加+ - 符号,这会弄乱你的数据。
编码后,尝试添加替换+ - (当然,接收后退。)