java - 如何将图像从 Imageview 发送到服务器

标签 java android

我正在制作注册表单,其中包含许多字段以及个人资料图片。我已将除图像之外的所有内容都转换为字符串。我无法理解当有人单击“注册”按钮时,如何将图像与其他字符串值一起发送到服务器。

以下是我的源代码供您细读:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;


public class SignUp extends Activity {
    ImageView imageView;


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


        imageView = (ImageView) findViewById(R.id.imagecontact);
    }
    public void onGalleryClick(View view){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent,ACCESSIBILITY_SERVICE),1);
    }
    @Override
    public void onActivityResult(int requestCode,int resultCode,Intent data){
        if(resultCode == RESULT_OK){
            if(requestCode == 1)
                imageView.setImageURI(data.getData());
        }
    }


    public void onSignUpClick(View view) {
        if (view.getId() == R.id.BT_signup) {
            EditText name = (EditText) findViewById(R.id.ED_bakeryname);
            EditText maail = (EditText) findViewById(R.id.ED_emailaddress);
            EditText number = (EditText) findViewById(R.id.ED_mobilenumber);
            EditText address = (EditText) findViewById(R.id.ED_postaladd);
            EditText pass1 = (EditText) findViewById(R.id.ED_pass1);
            EditText pass2 = (EditText) findViewById(R.id.ED_pass2);
            ImageView imageView1 =(ImageView)view.findViewById(R.id.imagecontact);


            String namestring = name.getText().toString();
            String mailstring = name.getText().toString();
            String numberstring = name.getText().toString();
            String addressstring = name.getText().toString();
            String pass1string = name.getText().toString();
            String pass2string = name.getText().toString();


            if (!pass1string.equals(pass2string)) {
                //popup msg

                Toast pword = Toast.makeText(SignUp.this, "Passwords don't match!", Toast.LENGTH_SHORT);
                pword.show();
            }
        }

    }


}

最佳答案

我假设您正在尝试将图像转换为 base64 字符串。

从您的代码中,您可以首先从 imageView 获取图像:

BitmapDrawable drawable = (BitmapDrawable) imageView1.getDrawable();
Bitmap bitmap = drawable.getBitmap();

然后将位图转换为字节数组:

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();  
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();

然后就可以得到字符串:

String image_byte=String.valueOf(byte[] byteArray);

然后,您当然可以像其他细节的其余部分一样传递字符串。然后,您可以从服务器获取字符串并将其解码为 imageView。

关于java - 如何将图像从 Imageview 发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36965053/

相关文章:

java - 扫描 2 种不同的数据类型 Java

java - 在输入的数字后显示单词

java - 让java程序的一部分等待......而不是整个程序

java - 32 位 JRE 中的 jna 指针

java - 如何改变 ActionBarActivity 中图标和标题之间的距离

android - 是否可以将 url 参数传递给 google play? (传递查询字符串)

android - button.setOnClicklistener 不幸的是 app_name 在 kepler 中停止了

android - 适用于 Android 的 Facebook SSO Facebook 应用程序

java - 调用 Bundle.getParcelable 时收到 NullPointerException

android - 从 Activity 向上导航回到 fragment