как загрузить изображение на сервер отдыха в андроид студии - PullRequest
0 голосов
/ 26 марта 2019

Я хотел бы сохранить изображение с помощью сервера 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();
        }
}
...