Я хотел бы сохранить изображение с помощью сервера codeigniter rest и загрузить его в Android Studio. Я хочу создать электронную подпись с помощью signaturepad, сохранить электронную подпись на сервере и сохранить имя файла в базе данных. Я уже создал подпись и успешно сохранил файл на своем смартфоне, но его загрузка на сервер не удалась. Я уже тестировал функцию myPhp, используя почтальон и его работу.
Мой ApiInterface:
@Multipart
@POST("Technician/createSuratPerintahKerja")
Call<PostData> uploadImage(@Part MultipartBody.Part sign_installer);
Моя функция загрузки Java:
bitmap = signaturePad.getSignatureBitmap();
path = saveImage(bitmap);
File file = new File(path);
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part body = MultipartBody.Part.createFormData("sign_installer", path, requestBody);
ApiInterface api = ApiClient.getClient().create(ApiInterface.class);
Call<PostData> call = api.uploadImage(body);
call.enqueue(new Callback<PostData>() {
@Override
public void onResponse(Call<PostData> call, Response<PostData> response) {
Toast.makeText(getApplicationContext(),"True", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<PostData> call, Throwable t) {
Toast.makeText(getApplicationContext(),"Not Response",Toast.LENGTH_SHORT).show();
}
});
функция SaveImage:
public String saveImage(Bitmap myBitmap) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
myBitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
File wallpaperDirectory = new File(
Environment.getExternalStorageDirectory() + IMAGE_DIRECTORY /*iDyme folder*/);
File f = new File(wallpaperDirectory, Calendar.getInstance()
.getTimeInMillis() + ".png");
// have the object build the directory structure, if needed.
if (!wallpaperDirectory.exists()) {
wallpaperDirectory.mkdirs();
Log.d("hhhhh",wallpaperDirectory.toString());
}
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
MediaScannerConnection.scanFile(SpkActivity.this,
new String[]{f.getPath()},
new String[]{"image/png"}, null);
fo.close();
Log.d("TAG", "File Saved::--->" + f.getAbsolutePath());
return f.getAbsolutePath();
} catch (IOException e1) {
e1.printStackTrace();
}
return f.getAbsolutePath();
}
Моя функция загрузки Php:
function uploadfile(){
$config['upload_path'] = './uploads/ba/';
$config['allowed_types'] = 'gif|jpg|png';
$config['file_name'] = "example1";
$this->upload->initialize($config);
if(!$this->upload->do_upload('sign_installer')){
$respond['error'] = true;
$respond['message'] = "Error";
exit();
}
}