尝试上传图片时,base64_decode返回null

时间:2015-05-24 13:53:52

标签: java php base64 decode

我正在尝试将图片上传到服务器,但base64_decode始终返回null 我从SO读了很多不同的案例,但没有任何作用。 在我提出我的http请求之前,这是我的java代码:

      ByteArrayOutputStream stream = new ByteArrayOutputStream();
            // Must compress the Image to reduce image size to make upload easy
            bitmap.compress(Bitmap.CompressFormat.PNG, 50, stream); 
            byte[] byte_arr = stream.toByteArray();
            // Encode Image to String
            encodedString = Base64.encodeToString(byte_arr,Base64.NO_WRAP);
            params.add(new BasicNameValuePair(TAG_IMAGE, encodedString));
           ...and the http request

php代码:

                     $base=$_REQUEST['image'];
                          //$response["base"] = $base;
                       $binary=base64_decode($base,TRUE);
                          $response["binary"] = $binary;
                         header('Content-Type: bitmap; charset=utf-8'); 
                         $imagepath='the path of the image';
                            $file = fopen($imagepath, 'w');
                            fwrite($file, $binary);
                            fclose($file);

我也尝试了$file = fopen($imagepath, 'wb');仍然$binary始终返回null; 有人可以帮我理解是什么问题吗?

我也检查了$base它看起来没问题,我也尝试删除\n\\但没有任何帮助

1 个答案:

答案 0 :(得分:0)

所以我弄清楚了: 1.保存图像所需的路径必须相对于服务器中的Web服务(在我的情况下为php代码),这也意味着您必须将图像保存在同一服务器上。 2. file_put_contents使用起来非常简单,并将fopen,fwrite和fclose一起替换并保存trubble。 我希望它会帮助你们