Я пытаюсь сохранить изображение в моей базе данных MySQL, используя base64string. я могу сделать снимок или открыть его из моей галереи и показать его на экране. оттуда я пытаюсь сохранить его. он сохраняет все данные, кроме моего изображения.
Я прошел через мой код, чтобы убедиться, что он был преобразован в base64string, но БД показывает blob — 0 ‘Я использую средний BLOB-объект.
если я конвертирую онлайн, используя конвертер base64, тогда делаю сохранение через sql, используя оператор phopmyadmin, это работает. но из моего приложения нет выхода.
private byte[] _picData;
if (resultCode == Result.Ok)
{
if (requestCode == 2)
{
Uri selectedImage = data.Data;
Bitmap mBitmap = null;
try
{
mBitmap = Media.GetBitmap(this.ContentResolver, selectedImage);
photo.SetImageURI(selectedImage);
Stream stream = ContentResolver.OpenInputStream(data.Data);
Bitmap bitmap = BitmapFactory.DecodeStream(stream);
MemoryStream newStream = new MemoryStream();
bitmap.Compress(Bitmap.CompressFormat.Webp, 100, newStream);
_picData = newStream.ToArray();
}
catch (Java.IO.IOException e)
{
e.PrintStackTrace();
}
}WebClient client = new WebClient();
System.Uri uri = new System.Uri("http://www.sbmgroup.ca/test/biteboard/meal.php");
NameValueCollection parameters = new NameValueCollection();
if (_type.Equals("takePicture") || _type.Equals("openPicture"))
{
parameters.Add("type", "add");
parameters.Add("user_id", _user_id.ToString());
parameters.Add("meal", mealType);
parameters.Add("scribble", scribble.Text);
parameters.Add("feeling", _feelValue.ToString());
parameters.Add("taste", _tasteValue.ToString());
parameters.Add("date", date.ToString("yyyy-MM-dd H:mm:ss"));
parameters.Add("picture", Convert.ToBase64String(_picData));
client.UploadValuesAsync(uri, parameters);
client.UploadValuesCompleted += Client_UploadValuesCompleted;
}
мой php
<?php
include("ConnectionInfo.php");
global $type;
global $id;
global $user_id;
global $meal;
global $scribble;
global $date;
global $taste;
global $feeling;
global $picture;
global $mealArray;
$type = $_REQUEST['type'];
$id = $_REQUEST['id'];
$user_id = $_REQUEST['user_id'];
$meal = $_REQUEST['meal'];
$scribble = $_REQUEST['scribble'];
$date = $_REQUEST['date'];
$dateLike = "{$_REQUEST['date']}%";
$taste = $_REQUEST['taste'];
$feeling = $_REQUEST['feeling'];
$picture = $_REQUEST['picture'];
$mealArray = array();
if ($type === "add")
{
$stmt = $conn->prepare('INSERT INTO meals (user_id,meal,comment,date,taste,feeling,mealPic) values(?,?,?,?,?,?,?)');
$stmt->bind_param('isssiib',$user_id,$meal,$scribble,$date,$taste,$feeling,$picture);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
$newId = $conn->insert_id;
echo $newId;
}
Я просмотрел подобные вопросы без посторонней помощи.
Задача ещё не решена.
Других решений пока нет …