#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, но я думаю, что нет.