Строка Php base64 в изображение

#php #base64

#php #base64

Вопрос:

Я получаю строку base64 из моего приложения для Android, используя которую php-скрипт сохраняет ее в каталог, для png все работает нормально. кроме того, что мне нужен скрипт для работы со всеми типами изображений, на стороне Android у меня есть расширенный класс httpservlet, с помощью которого я отправляю get-запрос с переменной, содержащей строку base64. Итак, все, что у нас есть, это строка base64, больше ничего на стороне сервера Вы можете мне с этим помочь?? Это мой php-код

 <?php

 $imgstr = $_REQUEST['string'];


      // Decode the data
$data = base64_decode($imgstr);

$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);

$success = file_put_contents("img/abc". uniqid().".png", $data);
imagedestroy($im);
if ($success) {
    echo 'yes yes yes';
}
} else {
echo 'An error occurred.';
  

}
?>

Комментарии:

1. Вы проверили, отправляет ли он $ _file из формы отправки?

2. Нет формы отправки, которую я отправляю через Android, используя httprequest. только одна переменная строка bas64

3. Как вы передаете данные, когда они не передаются через форму? Является ли апплет, который передает данные на ваш PHP-сервер, все еще не типом формы?

4. На стороне Android у меня есть расширенный класс httpservlet, с помощью которого я отправляю get-запрос с переменной, содержащей строку base64. Итак, все, что у нас есть, это строка base64, больше ничего на стороне сервера

5. Была ли ваша проблема решена?

Ответ №1:

Хорошо, итак, что я сделал, так это то, что я просто вычислил тип mime перед кодированием в base64 и отправил его также как переменную

Вот как я это сделал

  public static String getMimeType(String url) {
    String type = null;
    String extension = MimeTypeMap.getFileExtensionFromUrl(url);
    if (extension != null) {
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        type = mime.getMimeTypeFromExtension(extension);
    }
    return type;
}   

   mimetype = getMimeType(picturePath);
   String temp[] = mimetype.split("/");
   as.add(new BasicNameValuePair("mime", temp[1]));
  

После этого as был отправлен на сервер вместе с изображением.

Комментарии:

1. Итак, вы исследовали это самостоятельно. Я думал, что это будет отправлено на сервер в виде $ _FILE, но я думаю, что нет.