۱۳۹۵/۰۵/۱۰, ۰۹:۵۷ ق.ظ
با سلام
دوستان اگه بخام به همراه آپلود عکس چند تا پارامتر مثل توضیحات در مورد عکس بفرستم چکار باید بکنم
اینم کد های اکتیویتی
اینم از کد های upload.php
لطفا اگه میشه کد های قسمت هم برام توضیح بدین چطجوری ادرس عکس رو بدست میاره
با تشکر........
دوستان اگه بخام به همراه آپلود عکس چند تا پارامتر مثل توضیحات در مورد عکس بفرستم چکار باید بکنم
اینم کد های اکتیویتی
کد پیاچپی:
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=(Button) findViewById(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(i, RESULT_LOAD_IMAGE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
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,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
Bitmap bitmap=BitmapFactory.decodeFile(picturePath);
ImageView im = (ImageView) findViewById(R.id.imgBox);
im.setImageBitmap(bitmap);
/*
* Convert the image to a string
* */
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream); //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<NameValuePair> nameValuePairs = 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.main, menu);
return true;
}
public class uploadImageToPhp extends AsyncTask<JSONObject, Void, Void>
{
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(completeServerAddress, dataToSend);
return null;
}
public void communicator(String urlString,String dataToSend2)
{
String result=null;
try
{
URL url=new URL(urlString);
URLConnection conn=url.openConnection();
HttpURLConnection httpConn=(HttpURLConnection) conn;
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,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
با تشکر........