Надо организовать аплоад больших файлов. Можно ли реализовать это так, чтобы была возможность возобновления докачки?
думаю, поиск или беглый просмотр закреплённых тем спасёт отца русской демократии. http://php.ru/forum/viewtopic.php?p=75396#75396
Флешь - клиентская технология. Я не представляю, как это сделать на PHP. Собственно такие проблемы решаюся с помощью CGI-сценариев, написаных на разных языках, например на C++, или Perl...
В том и суть: он на стороне клиента получит размер оригинала, от сервера (PHP) получит размер уже залитого, обрежит и пошлёт кусок на сервер, а там PHP склеит два файла - залитое ранее и в данный момент. Тока интересно, у флэша от таких стараний пупок не развяжится? Флэш сам по себе процессор жрёт, а обрезание файла, посыл серверу силами ActionScript...
пупок у флэша не развяжется ). Надеялся, что можно обойтись без него правда. Только тогда не ясно чего ловить на сервере. Я еще в пхп нуб, и, насколько я представляю, если, например, связь оборвется то из скрипта никакого доступа к выгруженному не предвидится. Т. е. надо заранее нарезать на куски на стороне клиента. Я правильно понял?
А эта задача очень сложная, можно на этом форуме по пальцам пересчитать тех, кто за это может взяться. Тем более, что однии PHP здесь не обойтись. Хотя нет, можно и однии PHP обойтись. Если на компьютере клиента будет работать PHP-скрипт, который через сокет будет передавать файл скрипту на сервере Но для этого на компе клиента тоже должен быть установлен веб-сервер. Проще сделать специальную софтину-аплоадер.
Ловить на сервере то, что серверу флэш пошлёт. Ты делаешь загрузчик upload.php (вот тут с примером), в нём указываешь: PHP: <?php // пишем в начале скрипта загрузки set_time_limit(0); // снимаем ограничение на время работы скрипта ignore_user_abort(true); // если связь оборвётся или юзер отменит, то сами отрулим отключение загрузки if (is_file($_FILES['name'].'.part1')){ // если это продолжение закачки, то } // тут код загрузки ... if (connection_status()){ // коннект разорван, надо сворачивать загрузку // мы берём то, что успели загрузить и сохраняем как $_FILES['name'] с расширением part1 } // и тут последнее, мы берём все куски partN, где N это номер куска // и склеиваем их в целый файл, а затем удаляем все partN //скрипт вырубается Так же флэш должен отсылать скрипту название файла. Пусть он шлёт размер на returnsize.php, а тот в свою очередь вернёт: PHP: <?php // конечно, нужно поставить проверку на существование echo filesize($_GET['name'].'part1'); Флэш получает размер уже загруженого куска, отберает загружаемый от этого размера и отсылает отрезаный кусок на upload.php. Не очень-то понятно я мысли выразил, но, надеюсь, передал идею. Mr.M.I.T., я и не тебе писал, а [vs], чтобы он понял твою идею.
А что, если просто флеш порежет файл на мелкие кусочки, и, в пределах одной сессии (php), будет их отправлять скрипту? При этом кусочки для понятност обзывать как partN.file, а последний кусочке обозвать как end.file. После полчуения пследнего файла, PHP просто склеит все кусочки в один.
Upd! Это гарантирует узнаваемость пользователя после обрыва соеденения. А полученые части сохранять во временной папке, с именем = id сессии.
[vs], изнчально по-тихому (без информирования об этом пользователя) резать на куски и в таком виде заливать тоже вариант, но, имхо, тема доливки интереснее.
ИМХО, есть более простой выход - пусть человек сделает разбитый по частям архив и загрузит Это может оказаться проще чем реализация частичной загрузки
флеш и пхп реализовать можно.. темболее сейчас возможности его удивляют. сам реализовал недавно себе модуль массаплоада файлов при помощи флеша.. по размерам файлы только непропускает пхп.. соответственно поправить в настройках.. есть конечно минусы.. флеш вызывает на каждый загруженный файл скрипт обработки.. но это нестрашно ибо загружаются поочереди но есть плюсы: массовая загрузка + прогресбар ну и еще поправить размеры загружаемых файлов в пхпини делал для заливки фоток в альбом.. насчет докачки и тп.. пока еще не заморачивался.. но думаю сделать можно