Try this method for uploading Image file from camera
package com.example.imageupload; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.message.BasicHeader; public class MultipartEntity implements HttpEntity { private String boundary = null; ByteArrayOutputStream out = new ByteArrayOutputStream(); boolean isSetLast = false; boolean isSetFirst = false; public MultipartEntity() { this.boundary = System.currentTimeMillis() + ""; } public void writeFirstBoundaryIfNeeds() { if (!isSetFirst) { try { out.write(("--" + boundary + "\r\n").getBytes()); } catch (final IOException e) { } } isSetFirst = true; } public void writeLastBoundaryIfNeeds() { if (isSetLast) { return; } try { out.write(("\r\n--" + boundary + "--\r\n").getBytes()); } catch (final IOException e) { } isSetLast = true; } public void addPart(final String key, final String value) { writeFirstBoundaryIfNeeds(); try { out.write(("Content-Disposition: form-data; name=\"" + key + "\"\r\n") .getBytes()); out.write("Content-Type: text/plain; charset=UTF-8\r\n".getBytes()); out.write("Content-Transfer-Encoding: 8bit\r\n\r\n".getBytes()); out.write(value.getBytes()); out.write(("\r\n--" + boundary + "\r\n").getBytes()); } catch (final IOException e) { } } public void addPart(final String key, final String fileName, final InputStream fin) { addPart(key, fileName, fin, "application/octet-stream"); } public void addPart(final String key, final String fileName, final InputStream fin, String type) { writeFirstBoundaryIfNeeds(); try { type = "Content-Type: " + type + "\r\n"; out.write(("Content-Disposition: form-data; name=\"" + key + "\"; filename=\"" + fileName + "\"\r\n").getBytes()); out.write(type.getBytes()); out.write("Content-Transfer-Encoding: binary\r\n\r\n".getBytes()); final byte[] tmp = new byte[4096]; int l = 0; while ((l = fin.read(tmp)) != -1) { out.write(tmp, 0, l); } out.flush(); } catch (final IOException e) { } finally { try { fin.close(); } catch (final IOException e) { } } } public void addPart(final String key, final File value) { try { addPart(key, value.getName(), new FileInputStream(value)); } catch (final FileNotFoundException e) { } } public long getContentLength() { writeLastBoundaryIfNeeds(); return out.toByteArray().length; } public Header getContentType() { return new BasicHeader("Content-Type", "multipart/form-data; boundary=" + boundary); } public boolean isChunked() { return false; } public boolean isRepeatable() { return false; } public boolean isStreaming() { return false; } public void writeTo(final OutputStream outstream) throws IOException { outstream.write(out.toByteArray()); } public Header getContentEncoding() { return null; } public void consumeContent() throws IOException, UnsupportedOperationException { if (isStreaming()) { throw new UnsupportedOperationException( "Streaming entity does not implement #consumeContent()"); } } public InputStream getContent() throws IOException, UnsupportedOperationException { return new ByteArrayInputStream(out.toByteArray()); } }
Use of class for uploading
private void doFileUpload(File file_path) { Log.d("Uri", "Do file path" + file_path); try { HttpClient client = new DefaultHttpClient(); //use your server path of php file HttpPost post = new HttpPost(ServerUploadPath); Log.d("ServerPath", "Path" + ServerUploadPath); FileBody bin1 = new FileBody(file_path); Log.d("Enter", "Filebody complete " + bin1); MultipartEntity reqEntity = new MultipartEntity(); reqEntity.addPart("uploaded_file", bin1); reqEntity.addPart("email", new StringBody(useremail)); post.setEntity(reqEntity); Log.d("Enter", "Image send complete"); HttpResponse response = client.execute(post); resEntity = response.getEntity(); Log.d("Enter", "Get Response"); try { final String response_str = EntityUtils.toString(resEntity); if (resEntity != null) { Log.i("RESPONSE", response_str); JSONObject jobj = new JSONObject(response_str); result = jobj.getString("ResponseCode"); Log.e("Result", "...." + result); } } catch (Exception ex) { Log.e("Debug", "error: " + ex.getMessage(), ex); } } catch (Exception e) { Log.e("Upload Exception", ""); e.printStackTrace(); } }
Service for uploading
<?php $image_name = $_FILES["uploaded_file"]["name"]; $tmp_arr = explode(".",$image_name); $img_extn = end($tmp_arr); $new_image_name = 'image_'. uniqid() .'.'.$img_extn; $flag=0; if (file_exists("Images/".$new_image_name)) { $msg=$new_image_name . " already exists." header('Content-type: application/json'); echo json_encode(array("ResponseCode"=>"2","ResponseMsg"=>$msg)); }else{ move_uploaded_file($_FILES["uploaded_file"]["tmp_name"],"Images/". $new_image_name); $flag = 1; } if($flag == 1){ require 'db.php'; $static_url =$new_image_name; $conn=mysql_connect($db_host,$db_username,$db_password) or die("unable to connect localhost".mysql_error()); $db=mysql_select_db($db_database,$conn) or die("unable to select message_app"); $email = ""; if((isset($_REQUEST['email']))) { $email = $_REQUEST['email']; } $sql ="insert into alert(images) values('$static_url')"; $result=mysql_query($sql); if($result){ echo json_encode(array("ResponseCode"=>"1","ResponseMsg"=> "Insert data successfully.","Result"=>"True","ImageName"=>$static_url,"email"=>$email)); } else { echo json_encode(array("ResponseCode"=>"2","ResponseMsg"=> "Could not insert data.","Result"=>"False","email"=>$email)); } } else{ echo json_encode(array("ResponseCode"=>"2","ResponseMsg"=> "Erroe While Inserting Image.","Result"=>"False")); } ?>