Android — отправьте строку Base64 на сервер MySQL, используя HttpURLConnection и переполнение стека

У меня возникают проблемы при попытке отправить закодированное в Base64 растровое изображение через HttpURLConnection в переменную POST в моем сценарии PHP.

Он отображает тост «Загрузка успешно», но моя база данных не заполняется.

Сначала я преобразовываю свою переменную Bitmap в Base64, где bSignature — это Bitmap, а sSignature — это String.

sSignature = encodeToBase64(bSignature, Bitmap.CompressFormat.JPEG,100);

Вот мой код AsyncTask:

class BackgroundTaskSig extends AsyncTask<String,Void,String> {
String json_signature_url;

@Override
protected void onPreExecute() {
json_signature_url = "http://abhandyman.x10host.com/upload_signature.php";
}

@Override
protected String doInBackground(String... args) {
sSignature = args[0];
try {
URL url = new URL(json_signature_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
String data_string = URLEncoder.encode("image","UTF-8")+"="+URLEncoder.encode(sSignature,"UTF-8");
bufferedWriter.write(data_string);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
inputStream.close();
httpURLConnection.disconnect();
return "Upload Successful";

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
}
}

Вот мой PHP-скрипт, в котором столбец сигнатуры структуры имеет значение «blob»

<?php
require "init_signature.php";

$job_id = "1";
$image = $_POST['image'];
$image = base64_decode($image);

$sql_query = "UPDATE signature SET signature='$image' WHERE id='$job_id'";

if (mysqli_query($con,$sql_query)){
echo "Image uploaded successfully";
}else{
echo "Error in insertion " . mysqli_error($con);
}

?>

Я чувствую, что в моем PHP-скрипте что-то не так. Любое второе мнение будет высоко ценится!

заранее спасибо


РЕДАКТИРОВАТЬ:
Итак, я решил сообщение об ошибке T_VARIABLE (небольшая проблема синтаксиса) — теперь у меня есть это сообщение об ошибке:

php_error

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector