Большая загрузка файла

Есть несколько вариантов:

  • Устанавливает класс AsyncTask в вашем классе Activity. Предполагая, что вы не используете одну и ту же задачу в нескольких действиях, это самый простой способ. Весь ваш код остается прежним, вы просто перемещаете существующий класс задач в вложенный класс внутри класса вашей деятельности.
    public class MyActivity extends Activity {
        // existing Activity code
        ...
    
        private class MyAsyncTask extends AsyncTask<String, Void, String> {
            // existing AsyncTask code
            ...
        }
    }
    
  • Создайте собственный конструктор для вашего AsyncTask, который ссылается на ваш Activity. Вы должны создать экземпляр задачи с чем-то вроде new MyAsyncTask(this).execute(param1, param2).
    public class MyAsyncTask extends AsyncTask<String, Void, String> {
        private Activity activity;
    
        public MyAsyncTask(Activity activity) {
            this.activity = activity;
        }
    
        // existing AsyncTask code
        ...
    }
    
12
задан Rov 26 May 2019 в 04:16
поделиться

15 ответов

Существуют некоторые пользователи, которые будут позади корпоративных брандмауэров, которые не разрешают FTP...

Пользователи со строгими брандмауэрами как этот, вероятно, чтобы быть разрешенными установить и выполнить .exe файл с Вашего веб-сайта?

0
ответ дан 2 December 2019 в 07:05
поделиться

Смотрите на ЗАВИХРЕНИЕ. Эта статья описывает, как сделать многослойную одновременную загрузку через HTTP. Я использовал ЗАВИХРЕНИЕ в прошлом для управления загрузками FTP файлов более чем 300 ГБ.

Другая подсказка: можно повысить времена загрузки еще больше при увеличении размера Окна TCP на конфигурации NIC клиента. Установите его настолько высоко, как ОС позволяет, и необходимо видеть до 2x улучшение в зависимости от физической сети. Это работало на меня на Windows 2000 и 2003 когда FTPing по WAN. Вниз сторона - это, может увеличиться наверху для всего другого сетевого трафика, который хочет только некоторых КБ для сетевого пакета, но теперь вызывается к send/recv в пакетах 64 КБ. Ваш пробег может варьироваться.

Править: Что точно это, Вы пытаетесь выполнить? Кто аудитория? Я принят некоторое время, что Вы надеетесь делать это по своей собственной сети; но Вы, кажется, подразумеваете, что сторона клиента - кто-то в Интернете. Я думаю, что нам нужны более ясные требования.

0
ответ дан 2 December 2019 в 07:05
поделиться

@levand:

Мое фактическое предпочтение, как пользователь, в этих ситуациях должен загрузить легкий .exe файл, который загружает файл для Вас.

Это - dealbreaker для многих, многих сайтов. Пользователи или или должны чрезвычайно отказаться загрузить .exe файлы с веб-сайтов и выполнить их волей-неволей. Даже если они не всегда, что осторожное, неосторожное поведение не что-то, что мы должны поощрить как ответственные разработчики.

Если Вы работаете над чем-то вроде интранет компании, .exe потенциально хорошо решение, но для государственной сети?Ни за что.

@TonyB:

Что лучший способ состоит в том, чтобы сделать это, не используя FTP.

Я сожалею, но я должен спросить почему требование. Ваш вопрос читает в меня вроде, "что лучший способ состоит в том, чтобы приготовить стейк без какой-либо сути или теплового источника?" FTP был разработан для этого вида вещи.

7
ответ дан 2 December 2019 в 07:05
поделиться

Проблема с упомянутым подходом апплета состоит в том, что, если у Вас нет конечного пользователя, изменяют их свойства безопасности Java, которые Ваш апплет не будет иметь разрешения сохранить к жесткому диску.

Это может быть возможная сеть Java использования, Запускаются (иначе JNLP). Я думаю, что, если это - приложение со знаком, это может получить дополнительное разрешение записать в жесткий диск. Это не слишком отличается от загрузки подход exe. Проблема с этим состоит в том, что пользователь должен иметь правильную версию установленного Java и должен иметь сеть Java, Запускают установку возможности правильно.

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

0
ответ дан 2 December 2019 в 07:05
поделиться

@jjnguy я ищу апплет Java или компонент ActiveX, который сделает это для меня. Это нетехнические пользователи, таким образом, мы действительно просто хотим сделать, чтобы они нажали загрузку, и полный файл оказывается в указанном местоположении

0
ответ дан 2 December 2019 в 07:05
поделиться

@levand проблема только существует в IE (это работает в Firefox) поэтому, в то время как ActiveX только работал бы над IE, IE, является единственным, для которого мы нуждаемся в работе вокруг.

@travis - интересная идея. Не уверенный, если это будет работать на то, в чем я нуждаюсь, но я буду иметь в виду его. Я надеюсь найти, что что-то интегрируется с существующим сайтом вместо того, чтобы иметь необходимость выйти к третьему лицу. Это также потребовало бы, чтобы я установил bittorrent средство отслеживания, которое не будет так легко, как это звучит для этого приложения, потому что у различных пользователей будет другой доступ к различным файлам.

0
ответ дан 2 December 2019 в 07:05
поделиться

@ceejayoz

Я полностью соглашаюсь, но его часть требования для нашего клиента. Будет доступ FTP, но у каждого пользователя будет опция загрузки через HTTP или FTP. Существуют некоторые пользователи, которые будут позади корпоративных брандмауэров, которые не разрешают FTP

Я видел, что другие сайты делают это в прошлом (MSDN, Adobe), таким образом, я надеялся, что уже существует что-то там вместо того, чтобы иметь необходимость сделать один в доме (и изучить Java и/или ActiveX)

0
ответ дан 2 December 2019 в 07:05
поделиться

Я говорю, что щелчок однажды установил менеджер загрузок, подобный MSDN.

Но становление CDN без большего количества оптимизированного протокола для задания не является никакой легкой задачей. Я не могу вообразить бизнес-модель, которая может достаточно стоить, чтобы иметь такие большие загрузки файла как ключевая компетенция, если Вы не делаете что-то как MSDN. При создании толстого клиента Вы, по крайней мере, получаете шанс получить еще некоторое время личного контакта с пользователями для рекламы или некоторой другой модели дохода, так как Вы будете, вероятно, платить в сотнях тысяч долларов для хостинга такого сервиса.

0
ответ дан 2 December 2019 в 07:05
поделиться

Что относительно того, чтобы говорить "Мы рекомендуем установить менеджера по Бесплатной загрузке для загрузки этого файла. Вы будете обладать дополнительным преимуществом способности возобновить файл и ускорить загрузку".

Лично я никогда ничего не загружаю с помощью созданного в инструменте загрузки браузера, если я не имею к (например, вложения Gmail)

1
ответ дан 2 December 2019 в 07:05
поделиться

Несколько идей:

  • Использование снежной бури легкая .exe обертка БитТоррента для их патчей. Я не совсем уверен, как это сделано, но это похоже на фирменную версию официального клиента БитТоррента.
  • Загрузите на Amazon S3, предоставьте ссылку потока файла (все файлы S3 являются автоматически поддерживающими БитТоррент), плюс полная ссылка Загрузки http как альтернатива. См. документацию S3
1
ответ дан 2 December 2019 в 07:05
поделиться

Можно ли разделить файлы на части и затем воссоединиться ли с ними после загрузки?

2
ответ дан 2 December 2019 в 07:05
поделиться

Не используйте ActiveX... Я так сыт по горло сайтами, которые только видимы в IE.

Мое фактическое предпочтение, как пользователь, в этих ситуациях должен загрузить легкий .exe файл, который загружает файл для Вас.

4
ответ дан 2 December 2019 в 07:05
поделиться

Если Вы не хотите писать внутренний код Java, существуют коммерческие доступные решения для апплета:

У них обоих есть версии оценки, которые можно загрузить и протестировать.

1
ответ дан 2 December 2019 в 07:05
поделиться

bittorrent?

Уже было несколько веб-версий (bitlet, w3btorrent), и Azureus был создан с помощью Java, таким образом, это определенно возможно.

Править: @TonyB - ограниченный для портирования 80?

6
ответ дан 2 December 2019 в 07:05
поделиться

@travis

К сожалению, Это должно быть по HTTP в пользовательском браузере. Я обновлю вопрос больше согласиться с этим.

0
ответ дан 2 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: