Мне нужно POST некоторые данные на страницу PHP, используя cURL, и запрос содержит три параметра:
Я заметил, что значение 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);
Какие-нибудь советы?
Может быть, вы должны использовать urlencode (), потому что +
и =
в строке base64?
Убедитесь, что размер почтовых данных не превышает ваш «max_post_size» в вашем файле php.ini.
Справедливая догадка заключается в том, что кодировка добавляет + – признаки, которые испортили ваши данные.
После кодирования попробуйте добавить replace + to – (И назад, конечно, получите).
Ссылка: http://ru.wikipedia.org/wiki/Base64#URL_applications