我正在创建一个使用相机意图拍照的简单应用程序,然后将图片转换为base64
字符串,并将其与图像名称一起发送到我的服务器。我不确定如何使用Retrofit
发送图像,这个概念对我来说有点不清楚,并且没有意义,因为我是Java / Android App Development的新手。
这是我到目前为止所拥有的。我已经查看了几个教程,但我真的不确定在哪里添加Retrofit代码以及如何使其工作。我还在我的服务器上包含了PHP
代码。感谢
MainActivity.java
public class MainActivity extends AppCompatActivity {
private ImageButton ImageButton;
private String encoded_string, image_name;
private File file;
private Uri file_uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton = (ImageButton) findViewById(R.id.camera);
ImageButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT,file_uri);
startActivityForResult(i,10);
}
});
}
private void getFileUri() {
image_name = "testing1234.jpeg";
file = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), image_name);
file_uri = Uri.fromFile(file);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 10 && resultCode == RESULT_OK) {
}
}
}
PHP
<?php
header('Content-type : bitmap; charset=utf-8');
if(isset($_POST["encoded_string"])){
$encoded_string = $_POST["encoded_string"];
$device_name = $_POST["device_name"];
/*$image_name = $device_name.'.jpg';*/
$decoded_string = base64_decode($encoded_string);
$path = 'images/'.$image_name;
$file = fopen($path, 'wb');
$is_written = fwrite($file, $decoded_string);
fclose($file);
$extracted = shell_exec("python test.py $image_name");
echo $extracted;
}
else {
echo "Failed :(";
}
?>