POST Base64 закодированные данные в PHP

Мне нужно POST некоторые данные на страницу PHP, используя cURL, и запрос содержит три параметра:

  • Два из них – это обычные текстовые значения
  • Один из них – кодированный файл Base64

Я заметил, что значение 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); 

Какие-нибудь советы?

Related of "POST Base64 закодированные данные в PHP"

Может быть, вы должны использовать urlencode (), потому что + и = в строке base64?

Убедитесь, что размер почтовых данных не превышает ваш «max_post_size» в вашем файле php.ini.

Справедливая догадка заключается в том, что кодировка добавляет + – признаки, которые испортили ваши данные.

После кодирования попробуйте добавить replace + to – (И назад, конечно, получите).

Ссылка: http://ru.wikipedia.org/wiki/Base64#URL_applications