Форум программистов, компьютерный форум CyberForum.ru

Progressbar при передаче файла на сервер - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Тормозит ViewFlipper http://www.cyberforum.ru/android-dev/thread1548602.html
нужно реализовать прокрутку картинок. Картинки лежат в ресурсах. Для прокрутки использую ViewFlipper. Флиппер тормозит. Уже день ковыряюсь, так что немножко оптимизировал. Использую 3 ImageView во флиппере. Когда один на экране, два других заполняются соседними картинками методом setImageDrawable. Заполнение выполняется в отдельном потоке AsyncTask. Что в итоге: как тормозил, так и...
Android Как сформировать JSON для данных разных категорий? У меня есть данные разных категорий: список контактов телефона, текстовые сообщения,координаты местоположения, фото(изображения) в формате Base64 и мне нужно эти данные передать на сервер по TCP и там их записать в текстовый файл предназначенный каждый для свой категории(файл контакты для котактов, файл сообщения - для сообщений и тд). Так вот я хочу составить JSON из этих данных и передать на... http://www.cyberforum.ru/android-dev/thread1548600.html
Программно нарисовать тетрадную клетку Android
Реально ли программно нарисовать тетрадную клетку? Или ячейки заданного размера, чтоб выглядели как тетрадь в клетку
Android Google Analytics v4 не работает с android ниже 5 версии
Раньше в приложении использовал аналитику третьей версии. Решил перебраться на четвертую, но возникла проблема. В приложении одно активити и несколько фрагментов, на android 5.0+ все работает прекрасно. А на более поздних версиях не хочет работать. Максимум выдает имя активити. public class Analytics { private static final String TRACKER_ID = "мой tracker id"; private static...
Android Работа с фрагментами http://www.cyberforum.ru/android-dev/thread1548241.html
Здравствуйте! Имеется активити package com.example.des.farmer; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import...
Android Возвращение функий двух значений Смотрите... У меня два числа, которые вещественные (могут быть). Я каждое (!) число разделил на два ArrayList то что до точки и после. Есть функция, которая складывает столбиком. Сначала мы должны складывать дробную часть, от неё мы должны вернуть ArrayList result и temp (если сложение чисел превышает sys - Систему счисления) и передать temp уже функции для сложения целой части. Вот я не... подробнее

Показать сообщение отдельно
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 229

Progressbar при передаче файла на сервер - Android

09.10.2015, 23:42. Просмотров 251. Ответов 6
Метки (Все метки)

Добрый день!

Имею код для отправки файла на сервер
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
public String sendPhoto(File file){
        String total = "";
        String fileName = file.getName();
 
        HttpURLConnection conn = null;
        DataOutputStream dos = null;
        String lineEnd = "\r\n";
        String twoHyphens = "--";
        String boundary = "*****";
        int bytesRead, bytesAvailable;
        byte[] buffer;
        int maxBufferSize = 1024;
 
        // open a URL connection to the Servlet
        try {
            FileInputStream fileInputStream = new FileInputStream(file);
 
            String urlSendPhoto = "my url";
            URL url = new URL(urlSendPhoto);
 
        // Open a HTTP  connection to  the URL
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoInput(true); // Allow Inputs
            conn.setDoOutput(true); // Allow Outputs
            conn.setUseCaches(false); // Don't use a Cached Copy
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Connection", "Keep-Alive");
            conn.setRequestProperty("ENCTYPE", "multipart/form-data");
            conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
            conn.setRequestProperty("nameFile", fileName);
 
            dos = new DataOutputStream(conn.getOutputStream());
 
            dos.writeBytes(twoHyphens + boundary + lineEnd);
            dos.writeBytes("Content-Disposition: form-data; name="nameFile";filename=""
                    + fileName + """ + lineEnd);
            dos.writeBytes(lineEnd);
 
            // create a buffer of  maximum size
            bytesAvailable = fileInputStream.available();
            buffer = new byte[maxBufferSize];
            int startProcess = bytesAvailable;
            int progress = 0;
            while ((bytesRead = fileInputStream.read(buffer)) > 0) {
                dos.write(buffer, 0, bytesRead);
                progress += bytesRead;
               //тут производится обновление прогрессбара
            }
 
            // send multipart form data necesssary after file data...
            dos.writeBytes(lineEnd);
            dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
 
            // Responses from the server (code and message)
            fileInputStream.close();
            dos.flush();
            dos.close();
            InputStream inputStream = conn.getInputStream();
            InputStreamReader input = new InputStreamReader(inputStream);
            BufferedReader reader = new BufferedReader(input);
            int code = conn.getResponseCode();
            String line;
            while ((line = reader.readLine()) != null){
                total += line;
            }
            Log.i("uploadFile", "HTTP Response is : " + total);
 
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (ProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
        return total;
с обновлением прогресса проблем нет, проблема в том, что выполнение программы тормозится на строке
Java
1
 InputStream inputStream = conn.getInputStream();
Поэтому получается ерунда - прогресс дошел до 100%, но программа все равно задумывается.
Если убираю эту строку, то файл на сервер не передается.
Читал на stackoverflow аналогичную тему, но там сообщество решение так не подсказало.
Может тут народ подскажет. Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru