Как использовать BLOB с JSON и PHP?

У меня есть удаленная база данных с MySQL, и я храню фотографии пользователей моего приложения в базе данных в виде строки базы данных с типом LONGTEXT.

Я преобразовываю фотографии в строку с помощью Base64.

Я подключаюсь к своей удаленной базе данных с помощью JSON и PHP, потому что для этого мне нужно использовать Base64, потому что, как я знаю, JSON и PHP должны отправлять строки параметров, а с помощью Base64 я могу преобразовать фотографию в строку .

Работает нормально, но очень медленно. Когда я загружаю фотографию размером 100 КБ, это занимает много времени, но когда я загружаю фотографию размером 5 КБ, это занимает всего две-три секунды.

Друг посоветовал мне использовать BLOB вместо Base64, но как мне использовать BLOB с JSON и PHP-подключением к базе данных? Кроме того, мне нужно сохранить изображения в строке таблицы USER . Это связано с тем, что у пользователей нет прав на загрузку файлов на удаленный сервер, но они могут загружать фотографии, загружая их в виде строки в строке таблицы USER .

спасибо

РЕДАКТИРОВАТЬ:

это код, в котором требуется некоторое время ожидания (он ждет в строке: while ((line = reader.readLine ())! = Null) {, ожидает считывателя .readLine () )

этот код получает одного пользователя из удаленной базы данных, требуется loooooot времени, чтобы показать пользователя в моем приложении

public Friend RetrieveOneUser(String email)
{

    Friend friend=null;

    String result = "";
    //the parameter data to send
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("email",email));

    //http post
    InputStream is=null;
    try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(this.BaseURL + this.GetOneUser_URL);
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
    }catch(Exception e){
            Log.e("log_tag", "Error in http connection "+e.toString());
    }
    //convert response to string
    try{

            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                    sb.append(line + "\n");
            }
            is.close();

            result=sb.toString();
    }catch(Exception e){
            Log.e("log_tag", "Error converting result "+e.toString());
    }

    //parse json data
    try{
            JSONArray jArray = new JSONArray(result);


            for(int i=0;i<jArray.length();i++)
            {
                    JSONObject json_data = jArray.getJSONObject(i);
                    friend=new Friend(json_data.getString("email"),json_data.getString("password"), json_data.getString("fullName"), json_data.getString("mobilePhone"), json_data.getString("mobileOperatingSystem"),"",json_data.getString("photo"));
            }
    }
    catch(JSONException e){
            Log.e("log_tag", "Error parsing data "+e.toString());
    }

    return friend;
}
8
задан NullPointerException 31 January 2011 в 20:17
поделиться