Как загрузить изображение в папку на онлайн-сервере? - PullRequest
0 голосов
/ 27 мая 2019

в моем приложении у меня есть формы. Данные формы сначала сохраняются в локальной базе данных (SQLite), но когда мы нажимаем кнопку синхронизации, все несохраненные данные сохраняются на онлайн-сервере. Все работает нормально, кроме изображения. Изображение не сохраняется. Теперь я хочу, чтобы изображение было сохранено в папке. Затем путь к папке должен быть сохранен в графическом столбце MySQL. Я знаю, что этот вопрос задавали много раз, но никто не решил мою проблему. Вот мой код залпа:

if (checkNetworkConnection()) {

    allDataList = databaseHelper.getAllDataforSync();
    Toast.makeText(DashBoardActivity.this, "" + allDataList.size(), Toast.LENGTH_SHORT).show();

    if (allDataList.size() == 0) {
        AlertDialog.Builder builder2 = new AlertDialog.Builder(DashBoardActivity.this);
        LayoutInflater inflater2 = getLayoutInflater();
        View view2 = inflater2.inflate(R.layout.nodatatoshow_dialog_box, null);
        builder2.setPositiveButton("OK", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        builder2.setView(view2);
        AlertDialog alertDialog = builder2.create();
        alertDialog.show();
    } else {
        for (final FullModel fullModel : allDataList) {
            final Map<String, String> params = new HashMap<>();
            params.put("name", fullModel.getSale_name());
            params.put("sale_mobile", fullModel.getSale_mobile());
            params.put("sale_cnic", fullModel.getSale_cnic());
            params.put("buyer_name", fullModel.getBuyer_name());
            params.put("buyer_mobile", fullModel.getBuyer_mobile());
            params.put("buyer_cnic", fullModel.getBuyer_cnic());
            params.put("picture", String.valueOf(fullModel.getPicture()));
            params.put("date", fullModel.getDate());
            params.put("location", fullModel.getLocation());
            params.put("a_type", "");
            params.put("price", "");
            params.put("goat_q", "" + fullModel.getGoatQ());
            params.put("goat_r", "" + fullModel.getGoatP());
            params.put("goat_t", "" + fullModel.getGoatT());
            params.put("sheep_q", "" + fullModel.getSheepQ());
            params.put("sheep_r", "" + fullModel.getSheepP());
            params.put("sheep_t", "" + fullModel.getSheepT());
            params.put("cow_q", "" + fullModel.getCowQ());
            params.put("cow_r", "" + fullModel.getCowP());
            params.put("cow_t", "" + fullModel.getCowT());
            params.put("camel_q", "" + fullModel.getCamelQ());
            params.put("camel_r", "" + fullModel.getCamelP());
            params.put("camel_t", "" + fullModel.getCamelT());
            params.put("horse_q", "" + fullModel.getHorseQ());
            params.put("horse_r", "" + fullModel.getHorseP());
            params.put("horse_t", "" + fullModel.getHorseT());
            params.put("donkey_q", "" + fullModel.getDonkeyQ());
            params.put("donkey_r", "" + fullModel.getDonkeyP());
            params.put("donkey_t", "" + fullModel.getDonkeyT());
            params.put("buff_q", "" + fullModel.getBufQ());
            params.put("buff_r", "" + fullModel.getBufP());
            params.put("buff_t", "" + fullModel.getBufT());
            params.put("total_am", "" + fullModel.getTotalAm());

            StringRequest stringRequest = new StringRequest(Request.Method.POST, SERVER_URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        int status = jsonObject.getInt("status");
                        String message = jsonObject.getString("message");
                        if (status == 200) {
                            Toast.makeText(DashBoardActivity.this, "Data saved in Application server", Toast.LENGTH_SHORT).show();
                            databaseHelper.updateSyncState(fullModel.getId(), SYNC_STATE_OK);
                        } else {
                            Toast.makeText(DashBoardActivity.this, "Data not saved" + message, Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        Toast.makeText(DashBoardActivity.this, "" + e.getMessage(), Toast.LENGTH_LONG).show();
                    }
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            }) {
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    return params;
                }
            };
            MySingleton.getInstance(DashBoardActivity.this).addToRequestQueue(stringRequest);
        }
    }
}

php part:

$query = "insert into sell(name, sale_cnic, sale_mobile, buyer_name, buyer_mobile, buyer_cnic, picture, date, location, a_type,
price, goat_q, goat_r, goat_t, sheep_q, sheep_r, sheep_t, cow_q, cow_r, cow_t, camel_q, camel_r, camel_t, horse_q, horse_r, horse_t,
donkey_q, donkey_r, donkey_t, buff_q, buff_r, buff_t, total_am) VALUES('".$name."', '".$sale_cnic."', '".$sale_mobile."', '".$buyer_name."',
'".$buyer_mobile."', '".$buyer_cnic."', '".$picture."', '".$date."', '".$location."', '".$a_type."', '".$price."', '".$goat_q."', '".$goat_r."',
'".$goat_t."', '".$sheep_q."', '".$sheep_r."', '".$sheep_t."', '".$cow_q."', '".$cow_r."', '".$cow_t."', '".$camel_q."', '".$camel_r."',
'".$camel_t."', '".$horse_q."', '".$horse_r."', '".$horse_t."', '".$donkey_q."', '".$donkey_r."', '".$donkey_t."', '".$buff_q."', '".$buff_r."', 
'".$buff_t."', '".$total_am."');";

$upload_path = "uploads/$sale_mobile.jpg";

$result = mysqli_query($con,$query);
if($result){
    file_put_contents($upload_path, base64_decode($picture));
    $response['status'] = 200;
    $response['message'] = 'Data sync successfully';
}
else{
    $response['status'] = 400;
    $response['message'] = 'Data sync error';
}

Почему изображение не отображается, если я вижу его в базе данных MySQL. Пожалуйста, мне нужна помощь!

...