[英]Base64 Android encode to PHP decode make error
我是法國人,所以我為我的英語感到抱歉。
我正在開發一個與PHP REST服務通信的Android應用程序。 因此,當我嘗試將圖像文件編碼為Base64時,如下所示:
InputStream fileInputStream = context.getContentResolver().openInputStream(uri);
BufferedInputStream in = new BufferedInputStream(fileInputStream);
StringWriter out = new StringWriter();
int b;
while ((b = in.read()) != -1)
out.write(b);
out.flush();
out.close();
in.close();
String encoded = new String(android.util.Base64.encode(out.toString()
.getBytes(), android.util.Base64.DEFAULT));
在服務器端,我做:
$data=base64_decode(chunk_split($base64BinaryData));
結果是我的圖像文件已損壞!
INFO:該圖像是由意圖在模擬器模式下進行android.provider.MediaStore.ACTION_IMAGE_CAPTURE活動創建的(avd 5554)
我已經閱讀了很多有關類似問題的討論,但是沒有什么能解決我的錯誤。
感謝幫助
問候,
你能丟下chunk_split嗎?
另外,您可以哈希兩個二進制文件嗎? 也許使用sha1看看它們是否真的不同?
我假設:
out.toString().getBytes()
是錯的。 什么是“出”? 如果是圖像,則需要獲取圖像的原始字節,而不是對象的字符串表示形式的字節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.