Reyhan M.T Ответов: 2

Мое приложение принудительно закрывается при выборе изображения из галереи


I got problem when I choose picture with size 500 Kb from my gallery and my application force close. But if i choose picture with size 100-250kb it is success load image and send base64 to my database. Could you help me how to fix it ?

It is message error when i choose picture with 500kb:

   Refit.ApiException: 'Response status code does not indicate success: 500 (Internal Server Error).'


Что я уже пробовал:

This is my coding from mobile app:

async void SavePicture(object sender, EventArgs e)
 {
        file = await CrossMedia.Current.PickPhotoAsync(new PickMediaOptions
        {
            PhotoSize = PhotoSize.Small
            //CompressionQuality = 100,

        });

        if (file == null)
            return;


        //Convert image to string
        FileStream fs = new FileStream(file.Path, FileMode.Open, FileAccess.Read);
        byte[] ImageData = new byte[fs.Length];
        fs.Read(ImageData, 0, System.Convert.ToInt32(fs.Length));
        fs.Close();
        string imgResized = Convert.ToBase64String(ImageData);

        imageResize.Source = file.Path;

        api = RestService.For<ApiInterface> 
        ("http://192.168.0.190/webservice/webservice.asmx");

        String idgoogle = "";

        var id = Application.Current.Properties["Id"].ToString();

        var stringimage = imgResized;


        User user = new User(idgoogle);
        user.Profile_Image = stringimage;
        user.Id = id;


        var responseupdate = await api.UpdateGoogle(new UpdateGoogleQuery(user));

        if (responseupdate.isSuccess)
        {
            Loading.toast("Sukses Menyimpan Foto");
        }
        else
        {
            LoadingFailed.toast("Gagal Menyimpan Foto");
        }

}


This is my coding from webservice

public void update(User dtGoogle)
{
        String sql = $"UPDATE google SET profile_image = ('{dtGoogle.Profile_Image}') WHERE id = ('{dtGoogle.Id}')";
        Connection.executeSql(sql);
}

2 Ответов

Рейтинг:
1

OriginalGriff

Мы не можем помочь: у нас нет доступа к вашей базе данных и ее данным, у нас нет остального вашего кода, и мы не знали бы, как его использовать, если бы это было так. И вам нужно, чтобы ваш код работал, и это фактические данные, чтобы понять, что происходит.

Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!


Рейтинг:
0

Reyhan M.T

Я уже отладил свой код и нашел свою ошибку в

var responseupdate = await api.UpdateGoogle(new UpdateGoogleQuery(user));

Я уже вставил значение base64 из картинки размером 500 кб в мой веб-сервис, это успех добавить значение base64 в мою базу данных.


Reyhan M.T

Я пытаюсь использовать запись журнала в моем веб - сервисе, она успешно создается, если я выбираю картинку размером 100kb-490kb, но если я выбираю картинку размером 500kb, Моя запись журнала не создается