我的應用程序需要上傳多個圖像到服務器。我通過解碼Base64發送圖像。從Android上傳圖像到服務器 - 上傳圖像的僅部分
Bitmap bitmapOrg = BitmapFactory.decodeFile(imagePath);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao);
byte [] ba = bao.toByteArray();
ba1 = Base64.encodeBytes(ba);
而且在PHP,
$path = "/".$filename.".jpeg";
$buffer = base64_decode($base);
$handle = fopen($path, 'wb');
$numbytes = fwrite($handle, $buffer);
fclose($handle);
ob_clean();
flush();
現在我可以看到,有些圖片只有部分上傳。我只能看到圖像的最上面的幾位,並且在服務器中全部空白。什麼可能是錯的?使用Base64解碼有什麼缺點?
注生成文件的校驗和檢查這個link,如果你需要高質量的圖像,這種方法對你來說效果不佳,因爲它會將圖像縮小爲50x50像素的圖像。 – 2014-12-04 03:50:49
是的,因爲當圖片尺寸太高時,沒有比例尺的上傳服務器。 – dipali 2014-12-04 03:55:28
如果OP不關心分辨率,那麼你的解決方案工作正常。如果他真的關心它,那麼你的工作就會失敗。這是我唯一的觀點。 – 2014-12-04 03:57:39