i haben USERS Tabelle in Phpmyadmin Datenbank. In der Tabelle habe ich eine Spalte, die einen Link zum Benutzerprofilbild enthält. aber ich denke, das Bild, das ich hochlade, ist nicht gut. wenn ich es öffne ich sehe nur ein wenig Platz wie folgt aus:Hochladen Bild-Server und dann holen sie in android
EDIT: das Bild Teil befestigt ist
und wenn i`m versuchen, es mit zu holen Piccaso ich nichts. die Art, wie ich das Bild hochladen wird es auf String-Codierung und dekodieren sie dann in der register.php
Dies ist die Methode, die Zeichenfolge zu Bild konvertieren:
public String getStringImage(Bitmap bmp) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
das ist mein php wo im Hochladen des Bildes:
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$passWord = $_POST['password'];
$phoneNumber = $_POST['phonenumber'];
$apartmentNumber = $_POST['apartmentNumber'];
$image = $_POST['image']; //this is the encoded string
//upload image to image folder in the server
$upload_folder = "upload";
$path = "$upload_folder/$phoneNumber.jpeg";
if(file_put_contents($path, base64_encode($image)) != flase){
echo "uploaded";
}
$image_link = "my url/$path";
$result = mysqli_query($con,"INSERT INTO Users (firstName, lastname, password, phone , apartmentNum,image)
VALUES ('$firstName', '$lastName', '$EncryptPassword', '$phoneNumber', '$apartmentNumber' ,'$image_link')");
dies ist die PHP wo i`m die json Objekt erstellt:
$sql = ("select * from Users where phone = '$phone' and password = '$password' ");
$check = mysqli_fetch_array(mysqli_query($con,$sql));
if(isset($check)){
$hasApartment = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($hasApartment);
$apartmentNumber = $row['apartmentNum'];
$firstName = $row['firstName'];
$lastName = $row['lastname'];
$image = $row['image'];
echo '{"query_result":"SUCCESS", "apartmentNumber":' . $apartmentNumber.' , "firstName":' . trim($firstName) .' ,"lastName":' . trim($lastName).', "image":' . $image.'}';
}
Ich erhalte diese Ausnahme:
org.json.JSONException: Unterminated object at character 102 of {"query_result":"SUCCESS", "apartmentNumber":54 , "firstName":a ,"lastName":a, "image":XXXXXX.XX.XX/upload/112.jpeg}
das ist das JSON-Objekt:
{ "query_result": "SUCCESS", "Apartmentnummer": 54 " firstName ": a," lastName ": a," bild ": XXXXXX.XX.XX/upload/112.jpeg}
char 102 ist das" u "in u pload
Dies ist whers ich eine Anfrage zu tun bekommen. In onResponse() Ich versuche, die json Text als JSON-Objekt zu behandeln:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
String query_result = response.getString("query_result");
switch (query_result){
case "SUCCESS": // user name and password exists and mathces and user associated with apartment
int apartmentNum = Integer.parseInt(response.get("apartmentNumber").toString());
Intent intent = new Intent(LoginActivityScreen.this , HomeActivityScreen.class);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("phoneNumber" , PhoneValidationActivity.PHONE_NUMBER);
editor.putString("firstName", response.getString("firstName"));
editor.putString("lastName", response.getString("firstName"));
editor.putBoolean("loggedIn", true);
editor.putInt("apartmentNumber", apartmentNum);
Bitmap profilePicture = Picasso.with(context).load("http://roomates.96.lt/upload/0547517307.jpeg").get();
editor.apply();
startActivity(intent);
break;
case "FAILURE": //user name or password are incorrect
Toast.makeText(getApplicationContext(), "wrong name or password", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
} catch (JSONException e) { //this exception is caught
e.printStackTrace();
Log.e("e" , e.toString());
} catch (IOException e) {
e.printStackTrace();
Log.e("e", e.toString());
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
MySingleton.getInstance(context).addToRquestQueue(jsonObjectRequest);
}
SQL-Injection-FTW –
'das ist mein php wo im Hochladen des Bildes:'. Nein. Das ist ein PHP-Skript, das das Bild empfängt und dann etwas damit macht. – greenapps
'bin Hochladen ich es ok?'.Woher sollen wir das wissen? Es gibt keinen Code zum Hochladen. – greenapps