Java Android将图像上传到服务器,将带有文本字段的路径写入数据库并检索到列表视图

Java Android将图像上传到服务器,将带有文本字段的路径写入数据库并检索到列表视图,java,android,Java,Android,大家好,我是Android新手。我有上面的应用程序将图像上传到服务器,并将图像路径写入数据库以及用户输入的数据,如应用程序UI中所示。到目前为止,它只上传了一个带有以下代码的图像,并根据需要编写了路径。我无法将图像路径旁边的textview数据传递到mysql数据库。我需要以下信息。 1将多个图像上传到服务器,并将图像路径和其他值写入mysql数据库。 2.使用列表视图上的“州/县”选项显示服务器上的图像(垂直或水平) public类MainActivity扩展AppCompatActivity

大家好,我是Android新手。我有上面的应用程序将图像上传到服务器,并将图像路径写入数据库以及用户输入的数据,如应用程序UI中所示。到目前为止,它只上传了一个带有以下代码的图像,并根据需要编写了路径。我无法将图像路径旁边的textview数据传递到mysql数据库。我需要以下信息。 1将多个图像上传到服务器,并将图像路径和其他值写入mysql数据库。 2.使用列表视图上的“州/县”选项显示服务器上的图像(垂直或水平)

public类MainActivity扩展AppCompatActivity实现View.OnClickListener{
公共静态最终字符串上载\u URL=”http://10.0.2.2/PhotoUpload/upload.php";
公共静态最终字符串上传\u KEY=“image”;
私有int PICK_IMAGE_REQUEST=1;
私人按钮按钮;
私人按钮按钮;
私人按钮视图;
私人影像视图;
私有位图;
私有Uri文件路径;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButtonCoose=(按钮)findViewById(R.id.ButtonCoose);
buttonUpload=(Button)findViewById(R.id.buttonUpload);
buttonView=(按钮)findViewById(R.id.buttonView图像);
imageView=(imageView)findViewById(R.id.imageView);
ButtonCoose.setOnClickListener(此);
buttonUpload.setOnClickListener(这个);
buttonView.setOnClickListener(此);
}
私有void showFileChooser(){
意图=新意图();
intent.setType(“image/*”);
intent.setAction(intent.ACTION\u GET\u CONTENT);
startActivityForResult(Intent.createChooser(Intent,“选择图片”),PICK\u IMAGE\u请求);
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==PICK\u IMAGE\u REQUEST&&resultCode==RESULT\u OK&&data!=null&&data.getData()!=null){
filePath=data.getData();
试一试{
位图=MediaStore.Images.Media.getBitmap(getContentResolver(),filePath);
设置图像位图(位图);
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
公共字符串getStringImage(位图bmp){
ByteArrayOutputStream bas=新的ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG,100,baos);
byte[]imageBytes=bas.toByteArray();
字符串encodedImage=Base64.encodeToString(imageBytes,Base64.DEFAULT);
返回图像;
}
私有void uploadImage(){
类UploadImage扩展异步任务{
对话加载;
RequestHandler rh=新的RequestHandler();
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
loading=ProgressDialog.show(MainActivity.this,“上载…”,null,true,true);
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
loading.dispose();
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG.show();
}
@凌驾
受保护的字符串doInBackground(位图…参数){
位图位图=参数[0];
字符串uploadImage=getStringImage(位图);
HashMap数据=新的HashMap();
data.put(上传_键,上传图像);
字符串结果=rh.sendPostRequest(上传URL,数据);
返回结果;
}
}
UploadImage ui=新建UploadImage();
执行(位图);
}
@凌驾
公共void onClick(视图v){
如果(v==按钮选择){
showFileChooser();
}
如果(v==按钮加载){
上传图像();
}
如果(v==按钮视图){
viewImage();
}
}

通过初始化代码中的所有方面,它最终按要求工作。

通过初始化代码中的所有方面,它最终按要求工作。

我无法将textview数据与图像路径一起传递到mysql DB。
textview数据甚至没有到达您的php脚本。图像路径将是您的路径r服务器。在你的Android设备上没有路径。那么你的意思是:我无法将textview数据传递到我的php脚本?谢谢blackapps。我只需要以下所有参数(图片上传到文件夹,路径和名称上传到mysql数据库。谢谢sir@blackapps。这正是我想要的。1.将上述Android应用程序中的数据发送到php脚本。2.接收php脚本中的数据。3.将收到的数据放入php脚本中处理。1.将数据从Android发送到php脚本。2.接收处理php脚本中的数据。3.处理php脚本中接收到的数据,将图像上传到文件夹中,并将图像路径和输入的参数写入mysql数据库表。
我无法将图像路径旁边的textview数据传递到mysql数据库。
textview数据甚至没有到达php脚本。并且图像路径将是服务器上的路径。而不是Android设备上的路径。那么你的意思是:我无法将textview数据传递到我的php脚本?谢谢blackapps。我只需要以下所有参数(图片上传到文件夹,路径和名称上传到mysql数据库。谢谢sir@blackapps。这正是我想要的。1.将上述Android应用程序中的数据发送到php脚本。2.接收php脚本中的数据。3.将收到的数据放入php脚本中处理。1.将数据从Android发送到php脚本。2.接收处理php脚本中接收到的数据,将图像上传到文件夹,并将图像路径和输入的参数写入mysql数据库表。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

public static final String UPLOAD_URL = "http://10.0.2.2/PhotoUpload/upload.php";
public static final String UPLOAD_KEY = "image";



private int PICK_IMAGE_REQUEST = 1;

private Button buttonChoose;
private Button buttonUpload;
private Button buttonView;

private ImageView imageView;

private Bitmap bitmap;

private Uri filePath;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buttonChoose = (Button) findViewById(R.id.buttonChoose);
    buttonUpload = (Button) findViewById(R.id.buttonUpload);
    buttonView = (Button) findViewById(R.id.buttonViewImage);

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

    buttonChoose.setOnClickListener(this);
    buttonUpload.setOnClickListener(this);
    buttonView.setOnClickListener(this);
}

private void showFileChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {

        filePath = data.getData();
        try {
            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
            imageView.setImageBitmap(bitmap);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

public String getStringImage(Bitmap bmp){
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte[] imageBytes = baos.toByteArray();
    String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
    return encodedImage;
}

private void uploadImage(){
    class UploadImage extends AsyncTask<Bitmap,Void,String>{

        ProgressDialog loading;
        RequestHandler rh = new RequestHandler();

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            loading = ProgressDialog.show(MainActivity.this, "Uploading...", null,true,true);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            loading.dismiss();
            Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
        }

        @Override
        protected String doInBackground(Bitmap... params) {
            Bitmap bitmap = params[0];
            String uploadImage = getStringImage(bitmap);

            HashMap<String,String> data = new HashMap<>();

            data.put(UPLOAD_KEY, uploadImage);
            String result = rh.sendPostRequest(UPLOAD_URL,data);

            return result;
        }
    }

    UploadImage ui = new UploadImage();
    ui.execute(bitmap);
}

@Override
public void onClick(View v) {
    if (v == buttonChoose) {
        showFileChooser();
    }

    if(v == buttonUpload){
        uploadImage();
    }

    if(v == buttonView){
        viewImage();
    }
}