Я создал Restful Api, чтобы пользователь мог общаться с базой данных моего сервера. Сначала я загружаю изображение, которое пользователь выбирает из галереи, в базу данных, используя функцию для преобразования растрового изображения в строку:
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 50, baos);
byte[] imageBytes = baos.toByteArray();
return Base64.encodeToString(imageBytes, Base64.DEFAULT);
}
После этого я сохраняю путь к изображению в базе данных и декодирую закодированное изображение, используя следующий код в PHP:
if (!is_null($image)) {
file_put_contents($pathToImage, base64_decode($image));
}
И результат изображения таков:
http://ashfoundation.net/uploads/82.png
Когда я пытаюсь получить этот URL из адаптера, я ничего не получаю. Это код, который я использовал:
String imagePath = joke.getImagePath();
Uri uri = Uri.parse(imagePath);
if (Uri.EMPTY.equals(uri)) {
viewHolder.feedImage.setVisibility(View.GONE);
} else {
Glide.with(mContext)
.load(uri)
.fitCenter()
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(viewHolder.feedImage);
}
Я знаю, что что-то не так с URL-адресом, потому что, когда я попытался загрузить случайный URL-адрес, как этот:
https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png
Это работало. Так что может быть не так с моим URL?
Если у кого-то возникла такая же проблема, как у меня, просто не забудьте поставить
http://
для пути изображения, которое вы храните в базе данных. Это был случай для меня:
Я делал так, и это неправильно
if($image === 'null') {
$actualpath = "null";
} else {
$actualpath = "ashfoundation.net/$path";
}
Вот как это должно выглядеть:
if($image === 'null') {
$actualpath = "null";
} else {
$actualpath = "http://ashfoundation.net/$path";
}
Других решений пока нет …