انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آپلود عکس در اندروید

آپلود عکس در اندروید

#1
با سلام
دوستان اگه بخام به همراه آپلود عکس چند تا پارامتر مثل توضیحات در مورد عکس بفرستم چکار باید بکنم
اینم کد های اکتیویتی
کد پی‌اچ‌پی:
public class MainActivity extends Activity {


private static 
int RESULT_LOAD_IMAGE 1;
@
Override
protected void onCreate(Bundle savedInstanceState) {
 
   super.onCreate(savedInstanceState);
 
   setContentView(R.layout.activity_main);

 
   Button btnSelectImage=(ButtonfindViewById(R.id.uploadButton);
 
   btnSelectImage.setOnClickListener(new OnClickListener() {

 
       @Override
        public void onClick
(View v) {

 
       Intent i=new   Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

 
       startActivityForResult(iRESULT_LOAD_IMAGE);

 
       }
 
   });

}

@
Override
protected void onActivityResult(int requestCodeint resultCodeIntent data) {
 
   // TODO Auto-generated method stub
 
   super.onActivityResult(requestCoderesultCodedata);

 
   if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && data!=null) {

 
       Uri selectedImage=data.getData();
 
       String[] filePathColumn={MediaStore.Images.Media.DATA};

 
       Cursor cursor getContentResolver().query(selectedImage,filePathColumnnullnullnull);
 
       cursor.moveToFirst();

 
       int columnIndex cursor.getColumnIndex(filePathColumn[0]);
 
       String picturePath cursor.getString(columnIndex);
 
       cursor.close();


 
       Bitmap bitmap=BitmapFactory.decodeFile(picturePath);

 
       ImageView im = (ImageViewfindViewById(R.id.imgBox);
 
       im.setImageBitmap(bitmap);

 
       /*
         * Convert the image to a string
         * */
 
       ByteArrayOutputStream stream = new ByteArrayOutputStream();
 
       bitmap.compress(Bitmap.CompressFormat.PNG90stream); //compress to which format you want.
 
       byte [] byte_arr stream.toByteArray();
 
       String image_str Base64.encodeToString(byte_arr,Base64.DEFAULT);

 
       /*
         * Create a name value pair for the image string to be passed to the server
         * */
 
       ArrayList<NameValuePairnameValuePairs = new  ArrayList<NameValuePair>();            
        nameValuePairs
.add(new BasicNameValuePair("image",image_str));


 
       JSONObject jsonString=new JSONObject();
 
       try {
 
           jsonString.put("img"image_str);
 
       } catch (JSONException e) {
 
           // TODO Auto-generated catch block
 
           e.printStackTrace();
 
       }

 
       new uploadImageToPhp().execute(jsonString);



 
   }


}
@
Override
public boolean onCreateOptionsMenu(Menu menu) {
 
   // Inflate the menu; this adds items to the action bar if it is present.
 
   getMenuInflater().inflate(R.menu.mainmenu);


 
   return true;
}
public class 
uploadImageToPhp extends AsyncTask<JSONObjectVoidVoid>
{
 
   String dataToSend=null;

 
   public static final String prefix="http://"                                                       //prefix of the urls
 
   public static final String server_ip="172.16.26.155"                                                  //the ip address where the php server is located    

 
   public static final String completeServerAddress=prefix+server_ip+"/test_upload/upload_image.php"                 //Exact location of the php files

 
   @Override
    protected Void doInBackground
(JSONObject... params) {

 
       dataToSend="image="+params[0];
 
       communicator(completeServerAddressdataToSend);




 
       return null;
 
   }

 
   public void communicator(String urlString,String dataToSend2)
 
   {
 
       String result=null;

 
       try
        
{
 
           URL url=new URL(urlString);
 
           URLConnection conn=url.openConnection();

 
           HttpURLConnection httpConn=(HttpURLConnectionconn;
 
           httpConn.setRequestProperty("Accept""application/json");
 
           httpConn.setRequestProperty("accept-charset""UTF-8");
 
           httpConn.setRequestMethod("POST");         
            httpConn
.connect();

 
           //Create an output stream to send data to the server
 
           OutputStreamWriter out=new OutputStreamWriter(httpConn.getOutputStream());
 
           out.write(dataToSend2);
 
           out.flush();

 
           int httpStatus httpConn.getResponseCode();            
            System
.out.println("Http status :"+httpStatus);

 
           if(httpStatus==HttpURLConnection.HTTP_OK)
 
           {
 
               Log.d("HTTP STatus""http connection successful");

 
               BufferedReader in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(),"UTF-8"));
 
               StringBuilder sb = new StringBuilder();
 
               String inputLine;
 
               while ((inputLine in.readLine()) != null)
 
               {
 
                   System.out.println(inputLine);
 
                   sb.append(inputLine+"\n");
 
         
      
}
 
               in.close();
 
               result=sb.toString();                       

                try
                
{

 
                   //jsonResult = new JSONObject(result);
 
               }
 
               catch(Exception e)
 
               {
 
                    Log.e("JSON Parser""Error parsing data " e.toString());
 
               }


 
           }
 
           else
            
{
 
               System.out.println("Somthing went wrong");
 
           }
 
       } catch (MalformedURLException e) {
 
           // TODO Auto-generated catch block
 
           e.printStackTrace();
 
       } catch (IOException e) {
 
           // TODO Auto-generated catch block
 
           e.printStackTrace();
 
       }


 
   }


}




اینم از کد های upload.php
کد پی‌اچ‌پی:
$recievedJson=$_REQUEST['image'];
$imageContent=
(
$recievedJson,true);
 
$base=$imageContent["img"];

 
$binary=base64_decode($base);

 echo 
$binary;
header('Content-Type: bitmap; charset=utf-8');
$file fopen('uploaded_image.jpg''wb');
fwrite($file$binary);
fclose($file); 

لطفا اگه میشه کد های قسمت هم برام توضیح بدین چطجوری ادرس عکس رو بدست میاره
کد پی‌اچ‌پی:
Uri selectedImage=data.getData();
 
       String[] filePathColumn={MediaStore.Images.Media.DATA};

 
       Cursor cursor getContentResolver().query(selectedImage,filePathColumnnullnullnull);
 
       cursor.moveToFirst();

 
       int columnIndex cursor.getColumnIndex(filePathColumn[0]);
 
       String picturePath cursor.getString(columnIndex);
 
       cursor.close(); 


با تشکر........
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان