我想将照片上传到我的服务器。 相机的代码工作得很好但是当我实现新按钮从图库中选择图像时不起作用。
foto是一个字符串,我将要上传的文件的名称放到服务器上。
我实现了两个按钮Camera和Gallery:
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
TAKE_PICTURE = 1;
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri output = Uri.fromFile(new File(foto));
intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
startActivityForResult(intent, TAKE_PICTURE);
break;
case R.id.btGallery:
Intent i = new Intent(
Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
Uri output1 = Uri.fromFile(new File(foto2));
i.putExtra(MediaStore.EXTRA_OUTPUT, output1);
startActivityForResult(i, 2);
break;
}
}
camara按钮和操作有效并将图像上传到服务器。
onActivityResult函数是:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ImageView iv = (ImageView) findViewById(R.id.imageView1);
switch(requestCode) {
case 1:
iv.setImageBitmap(BitmapFactory.decodeFile(foto));
File file = new File(foto);
if (file.exists()) {
UploaderFoto nuevaTarea = new UploaderFoto();
nuevaTarea.execute(foto);
}
else
Toast.makeText(getApplicationContext(), "No se ha realizado la foto", Toast.LENGTH_SHORT).show();
break;
case 2:
File file2 = new File(foto2);
if (file2.exists()) {
UploaderFoto nuevaTarea = new UploaderFoto();
nuevaTarea.execute(foto2);
Toast.makeText(getApplicationContext(), "DENTRO EXISTS GALLERY", Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(getApplicationContext(), "FUERA EXISTS", Toast.LENGTH_SHORT).show();
break;
}
}
在ActivityResult中输入if循环并显示Toast,但从不将信息传递给UploaderPhoto。
由于
答案 0 :(得分:1)
如果您想使用HTML5和设备的相机,则可以使用HTML5功能。示例:
<input type="file" accept="image/*" capture="camera" />