android中如何将图片上传到服务器,将图像上传到服务器android

上载和挑选的主要活动课

import android.app.Activity;

import android.app.ProgressDialog;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.database.Cursor;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.net.Uri;

import android.os.AsyncTask;

import android.os.Bundle;

import android.provider.MediaStore;

//import android.util.Base64;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.Toast;

import org.apache.http.HttpResponse;

import org.apache.http.NameValuePair;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import java.io.ByteArrayOutputStream;

import java.util.ArrayList;

public class MainActivity extends Activity {

Button btpic, btnup;

private Uri fileUri;

String picturePath;

Uri selectedImage;

Bitmap photo;

String ba1;

public static String URL = "Paste your URL here";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btpic = (Button) findViewById(R.id.cpic);

btpic.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

clickpic();

}

});

btnup = (Button) findViewById(R.id.up);

btnup.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

upload();

}

});

}

private void upload() {

// Image location URL

Log.e("path", "----------------" + picturePath);

// Image

Bitmap bm = BitmapFactory.decodeFile(picturePath);

ByteArrayOutputStream bao = new ByteArrayOutputStream();

bm.compress(Bitmap.CompressFormat.JPEG, 90, bao);

byte[] ba = bao.toByteArray();

//ba1 = Base64.encodeBytes(ba);

Log.e("base64", "-----" + ba1);

// Upload image to server

new uploadToServer().execute();

}

private void clickpic() {

// Check Camera

if (getApplicationContext().getPackageManager().hasSystemFeature(

PackageManager.FEATURE_CAMERA)) {

// Open default camera

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

// start the image capture Intent

startActivityForResult(intent, 100);

} else {

Toast.makeText(getApplication(), "Camera not supported", Toast.LENGTH_LONG).show();

}

}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 100 && resultCode == RESULT_OK) {

selectedImage = data.getData();

photo = (Bitmap) data.getExtras().get("data");

// Cursor to get image uri to display

String[] filePathColumn = {MediaStore.Images.Media.DATA};

Cursor cursor = getContentResolver().query(selectedImage,

filePathColumn, null, null, null);

cursor.moveToFirst();

int columnIndex = cursor.getColumnIndex(filePathColumn[0]);

picturePath = cursor.getString(columnIndex);

cursor.close();

Bitmap photo = (Bitmap) data.getExtras().get("data");

ImageView imageView = (ImageView) findViewById(R.id.Imageprev);

imageView.setImageBitmap(photo);

}

}

public class uploadToServer extends AsyncTask {

private ProgressDialog pd = new ProgressDialog(MainActivity.this);

protected void onPreExecute() {

super.onPreExecute();

pd.setMessage("Wait image uploading!");

pd.show();

}

@Override

protected String doInBackground(Void... params) {

ArrayList nameValuePairs = new ArrayList();

nameValuePairs.add(new BasicNameValuePair("base64", ba1));

nameValuePairs.add(new BasicNameValuePair("ImageName", System.currentTimeMillis() + ".jpg"));

try {

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(URL);

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclient.execute(httppost);

String st = EntityUtils.toString(response.getEntity());

Log.v("log_tag", "In the try Loop" + st);

} catch (Exception e) {

Log.v("log_tag", "Error in http connection " + e.toString());

}

return "Success";

}

protected void onPostExecute(String result) {

super.onPostExecute(result);

pd.hide();

pd.dismiss();

}

}

}

php代码来处理上传图像,并根据base64编码数据创建图像

error_reporting(E_ALL);

if(isset($_POST['ImageName'])){

$imgname = $_POST['ImageName'];

$imsrc = base64_decode($_POST['base64']);

$fp = fopen($imgname, 'w');

fwrite($fp, $imsrc);

if(fclose($fp)){

echo "Image uploaded";

}else{

echo "Error uploading image";

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值