在PHP中POST POST Base64编码数据

时间:2010-11-17 16:28:52

标签: php post base64 httprequest

我需要使用cURL将一些数据发布到PHP页面,并且请求包含三个参数:

  • 其中两个是常规文本值
  • 一个是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);

任何提示?

3 个答案:

答案 0 :(得分:15)

也许你应该使用urlencode()因为base64字符串中的+=

答案 1 :(得分:2)

确保帖子数据的大小不超过php.ini文件中的'max_post_size'。

答案 2 :(得分:0)

一个公平的猜测是编码会增加+ - 符号,这会弄乱你的数据。

编码后,尝试添加替换+ - (当然,接收后退。)

价: http://en.wikipedia.org/wiki/Base64#URL_applications