i want to upload my image data(file) and string data(username) from android to mysql database on the server
my JSON code :
private void uploadFile() {
// TODO Auto-generated method stub
String nama = getIntent().getStringExtra("user");
Bitmap bitmapOrg= BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getAbsolutePath() +"/Chart1.png");
ByteArrayOutputStream bao = new ByteArrayOutputStream();
bitmapOrg.compress(Bitmap.CompressFormat.JPEG, 90, bao);
byte [] ba = bao.toByteArray();
String ba1=Base64.encodeBytes(ba);
ArrayList nameValuePairs = new ArrayList();
nameValuePairs.add(new BasicNameValuePair("file",ba1));
nameValuePairs.add(new BasicNameValuePair("username",nama));
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://ipadress/base.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpRespose = httpclient.execute(httppost);
HttpEntity httpEntity = httpRespose.getEntity();
InputStream in = httpEntity.getContent();
BufferedReader read = new BufferedReader(new InputStreamReader(in));
String isi= "";
String baris= "";
while((baris = read.readLine())!=null){
isi+= baris;
}
//Jika isi tidak sama dengan "null " maka akan tampil Toast "Register Success" sebaliknya akan tampil "Register Failure"
if(!isi.equals("null")){
Toast.makeText(this, "Register Success", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(this, "Register Failure", Toast.LENGTH_LONG).show();
}
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
}
and my php code :
<?php
include_once("koneksi.php");
$username = $_REQUEST['username'];
$file = $_REQUEST['file'];
$hasil = mysql_query("select (max(ID)+1)as newid from userownfile");
$row = mysql_fetch_row($hasil);
$base = $_REQUEST['file'];
$filename = $row[0] . ".jpg";
$buffer=base64_decode($base);
$path = "img/".$filename.".jpg";
$handle = fopen($path, 'wb');
$numbytes = fwrite($handle, $buffer);
fclose($handle);
$conn=mysql_connect("localhost","root","");
mysql_select_db("db_bloodglucose");
if($username && $file){
$sql = "insert into userownfile(username,file) values('$username','" .
$path . "')";
mysql_query($sql);
}
$string= "select * from userownfile";
$my_string= mysql_query($string);
if($my_string){
while($object= mysql_fetch_assoc($my_string)){
$output[] = $object;
}
echo json_encode($output);
?>
my table on the database should be like this :
ID | username | file
but i when i tried to upload, image and username didn’t inserted on my database, am i missing something? anyone can help me to fix the code? thanks before
Use something like Fiddler to ensure that the packet you sent to the server is the packet the server is expecting.
If you want to format your text as JSON, I’d advise you use the built in classes and do something like: