Вверх ↑
Этот топик читают: Гость
Ответов: 6
Рейтинг: 0
#1: 2007-08-26 13:01:58 ЛС | профиль | цитата
Вобщем задача такая: есть сайт http://www.gorod37.info/shara сюда можно загружать файлы, но размер их ограничен 10мб. Поэтому приходиться разделять архивы на части и в ручную эти части загружать на сайт. Как сделать downloader я разобрался, а вот как сделать Uploader немогу понять, подскажите пожалуйста каким образом это можно сделать и вобще возможно ли? В каком направлении копать?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3655
Рейтинг: 69
#2: 2007-08-26 13:09:04 ЛС | профиль | цитата
<<HiAsmNoOB>>,
1) есть другие сайты (без таких ограничений)
<<HiAsmNoOB>> писал(а):
а вот как сделать Uploader

Есть готовые.(не на HiAsm)
карма: 0

0
Ответов: 6
Рейтинг: 0
#3: 2007-08-26 14:46:05 ЛС | профиль | цитата
1) есть другие сайты (без таких ограничений)

Вот так и знал, что кто-нибудь так ответит. Я знаю, что есть, но http://www.gorod37.info/shara для меня бесплатный, я на него могу зайти не подключаясь к интернету, поэтому и возникла потребность в uploadere. И мы, кажеться, здесь HiAsm обсуждаем, а не файлохранилища.
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 5446
Рейтинг: 323
#4: 2007-08-26 19:58:30 ЛС | профиль | цитата
<<HiAsmNoOB>>, берёшь HTTP RFC (ask google) и вникаешь, как файлы в веб-формах.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2007-08-26 23:04:41 ЛС | профиль | цитата
<<HiAsmNoOB>> писал(а):
Как сделать downloader я разобрался, а вот как сделать Uploader немогу понять, подскажите пожалуйста каким образом это можно сделать и вобще возможно ли?

в направление ftp. Вот готовый пример серверной части программы Updater, входящей в состав HiAsm:
code_1862.txt
карма: 27
0
файлы: 1code_1862.txt [9.5KB] [596]
Ответов: 9906
Рейтинг: 351
#6: 2007-08-27 11:02:18 ЛС | профиль | цитата
Dilma, думаю в HTTP_Get надо сделать возможность определять закачку не только С, но и ДО

Да, и еще хорошо бы иметь мозможность определять не только размер файла, но и его дату...
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2007-08-27 11:14:51 ЛС | профиль | цитата
имеется ввиду докачка файла?
карма: 27
0
Ответов: 9906
Рейтинг: 351
#8: 2007-08-27 11:26:37 ЛС | профиль | цитата
Докачка и сегодня есть...
Наверное - хитрая докачка, не до конца, а до куда хочу
Скажем, если хочется запустить несколько потоков, которые качают - каждый свой кусок.

Давненько я качалки не пользовал (со времен диаллапа), но кажется они так и делают...
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2007-08-27 11:39:22 ЛС | профиль | цитата
не вижу в этом особого смысла. Кроме того это уже отдельный компонент будет. Захочется ведь и статус по каждому потоку получать, и скорость ограничивать и т.д. и т.п.
карма: 27
0
Ответов: 9906
Рейтинг: 351
#10: 2007-08-27 12:05:22 ЛС | профиль | цитата
А по-моему просто достаточно - доп св-во ДО-КУДА, и все... В default-е - до конца, как сегодня.
Без излишних умничаний.

А уж кому захочется, тот уже сможет собрать схему из нескольких элементов, или в динамическом контейнере - вот пусть там и умничает для каждого потока со статусом, реакциями на ошибки, и т.д., и т.п..

Мы дали бы полную возможность минимальнвми средствами, а как ее использовать - дело пользователя (второго уровня). Хочет - как сегодня, хочет - изобретет качалку.

Нормальная стратегия, по-моему.
Без решения задачи КАЧАЛКА - вместо пользователя.
По принципу: если тебе программер имя - имя крепи делами своими.
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2007-08-27 12:36:59 ЛС | профиль | цитата
ну-ну А вставка If после onStatus с последующим вызовом doStop это конечно не решение проблемы Конечно имея формат "Range: bytes=from-to" логично выввести наружу обе границы, но с соответствующими изменениями логики записи в файл - напомню, что организация нескольких потоков на нескольких элементах писать одновременно в файл в нужные позиции не позволит. Файл должен быть открыт один раз. Поэтому:

Galkov писал(а):
или в динамическом контейнере


сделать не получится, если только не с получением Stream и ручной записи в файл в нужные места, что назвать простой процедурой весьма и весьма сложно
карма: 27
0
Ответов: 9906
Рейтинг: 351
#12: 2007-08-27 14:28:02 ЛС | профиль | цитата
Dilma писал(а):
А вставка If после onStatus с последующим вызовом doStop это конечно не решение проблемы

В принципе - да, решение...
Хотя не самое прозрачное - аж не сразу и в голову мне пришло
Да и Synchronize в цикле - не самая лучшая идея
Может даже и наоборот лучше будет: ввести проверку типа linked а-ля в hiThread.pas, чтобы не творить Synchronize там где он не нужен.
Скажем, я вовсе не уверен, что те 4 секунды (у меня) для закачки HiAsm.exe через HiUpdate - это не прорисовка контролла через Synchronize


Dilma писал(а):
но с соответствующими изменениями логики записи в файл

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


Dilma писал(а):
сделать не получится, если только не с получением Stream и ручной записи в файл в нужные места, что назвать простой процедурой весьма и весьма сложно

Ну можно и реальных файликов с разными именами наделать.
Если размеры по 10-20 метров, может так даже и надежнее получится
На небольших (по сравнению памятью компа) размерах - Stream на выходе оптимальнее.
И не есть это сложная задача
Если это сложно - бери более простые задачи для решения, HiAsm позволяет.

Вообще-то я не сторонник заложения избыточного интеллекта.
Мне представляется, что избыточность всегда вносит ограничение для того пользователя, который соображает не хуже нас (а может и лучше )
карма: 9

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)