Комментарии 46
>> Отправить
1. Почему не сабмит?
2. ИМХО, даже в наш век тотального JS надо навешивать все обработчики уже после загрузки DOM, а наличие решетки в href'е — вообще ни в какие ворота (в идеале все должно работать без JS, т.е. элемент формы должен иметь нормальный работающий адрес скрипта).
>> Думаю, всем понятно, что данный скрипт должен лежать в закрытой админской части сайта чтобы к нему не имели доступа разные личности со стороны.
Проверку в самом скрипте все равно надо делать, никому нельзя верить.
1. Почему не сабмит?
2. ИМХО, даже в наш век тотального JS надо навешивать все обработчики уже после загрузки DOM, а наличие решетки в href'е — вообще ни в какие ворота (в идеале все должно работать без JS, т.е. элемент формы должен иметь нормальный работающий адрес скрипта).
>> Думаю, всем понятно, что данный скрипт должен лежать в закрытой админской части сайта чтобы к нему не имели доступа разные личности со стороны.
Проверку в самом скрипте все равно надо делать, никому нельзя верить.
-2
Надеюсь, Вы понимаете, что в данной статье показаны всего лишь краткие примеры? (Это к вопросу о решетке и сабмите). А что касается проверки в самом скрипте, то об этом русским по белому написано и в статье. Надеюсь, Вы не ставите мне в вину тот факт, что я в примере не реализовал эту проверку, которая сама по себе достойна не одной статьи?
+4
Я ставлю в вину даже отсутствие упоминания о подобного рода практике. Всяко лучше, чем спорное «Думаю, нет нужды подробнее останавливаться на необходимости подключения библиотеки jQuery».
-1
офигеть. Я бы тупо сменил хостера.
+6
Не всегда получается, обычно принятие решений о переезде на стороне клиента принимается неделю-две, а вот файл залить нужно прямо сейчас, вчера, позавчера, к нам звонят и спрашивают где годовой отчет.
Так что решение имеет право на жизнь.
Так что решение имеет право на жизнь.
+2
у вас автоматизация костыля, а для описанных вами случаев достаточно ручной загрузки, т.к. случаи эти должны быть исключением, а не правилом.
+1
я бы тупо по ftp залил :)
+3
jumpLoader обладает нужной вам функцией закачки по частям.
Вот пример загрузки больших файлов частями с проверкой контрольной суммы.
Вот пример загрузки больших файлов частями с проверкой контрольной суммы.
+2
Ага… Это интересно, спасибо.
+1
НЛО прилетело и опубликовало эту надпись здесь
Ну, допустим, популярность явы здесь не столь критична: напоминаю, что речь идет об админке, причем даже не о серийном продукте — для одного единственного клиента. Лицензия напрягает больше.
Данная возможность точно поддерживается в FF 3.0. Насчет более старых — не знаю. IE, Опера, Хром — не поддерживают. А что касается стандартов, то более перспективной фичей представляется FileAPI. Его уже поддерживает FF 3.6, на подходе Хром. Опера, думаю, подтянется. Всю малину, конечно же, испортит IE.
Данная возможность точно поддерживается в FF 3.0. Насчет более старых — не знаю. IE, Опера, Хром — не поддерживают. А что касается стандартов, то более перспективной фичей представляется FileAPI. Его уже поддерживает FF 3.6, на подходе Хром. Опера, думаю, подтянется. Всю малину, конечно же, испортит IE.
+1
Не стоит сильно переживать насчет лицензии, как сказано на сайте «You may use this software for free».
Покупать нужно для отключения лого, но я его там так и не нашел, этого лого (разве что в диалоге about, который никто не заставляет вас вызывать).
Или для получения исходников. Этот вариант я считаю вполне справедливым, т.к. работа автором проделана немаленькая и вполне достойна той платы, что он посит.
Покупать нужно для отключения лого, но я его там так и не нашел, этого лого (разве что в диалоге about, который никто не заставляет вас вызывать).
Или для получения исходников. Этот вариант я считаю вполне справедливым, т.к. работа автором проделана немаленькая и вполне достойна той платы, что он посит.
0
Ну, как уже ответил автор топика, для админки не так критично ява это или флэш.
А про закрытость лицензии не совсем верно. Пользовать вы его можете абсолютно бесплатно. За деньги вам предлагаются версии «без лого» и исходники.
Думаю для большинства будет достаточно бесплатной версии, тем более что функционал этой бесплатностью никак не ограничивается.
А про закрытость лицензии не совсем верно. Пользовать вы его можете абсолютно бесплатно. За деньги вам предлагаются версии «без лого» и исходники.
Думаю для большинства будет достаточно бесплатной версии, тем более что функционал этой бесплатностью никак не ограничивается.
0
Хм…
а директивы в .htaccess
php_value upload_max_filesize
php_value post_max_size
хостер тоже не поддерживает????
а директивы в .htaccess
php_value upload_max_filesize
php_value post_max_size
хостер тоже не поддерживает????
0
Неужто Вас удивляет, что такое бывает?
+1
Честно-говоря удивило несколько…
В свое время для самописного приложения делали что-то подобное через JSP…
Но пример интересный — спасибо!
В свое время для самописного приложения делали что-то подобное через JSP…
Но пример интересный — спасибо!
0
Значит там CGI и вам надо бы править свой php.ini :)
Кстати, а что за хостер? )
Кстати, а что за хостер? )
+2
Согласен с вами, товарищ!
Тоже в свое время попался на эту фишку — даже в саппорт писал.
А мне и говорят — этогород Ленинград php.ini вам надо ковырять!
Кстати, хостер-то был и есть Логол…
Тоже в свое время попался на эту фишку — даже в саппорт писал.
А мне и говорят — это
Кстати, хостер-то был и есть Логол…
+1
НЛО прилетело и опубликовало эту надпись здесь
А уже :)
habrahabr.ru/blogs/p2p/96880/
habrahabr.ru/blogs/p2p/96880/
0
Если честно, то у меня та же мысль появлялась :)
0
Вообще, конечно, перед тем как регистрируется хостинг — надо открыть страницу опций и хорошо их изучить, на предмет совместимости с желаниями клиентов ;) У меня была такая же ситуация, после непродолжительной переписки с хостером, ограничение для моего аккаунта было расширено до 30 мб. Насколько я понял, подобные ограничения — для защиты от нелегального распространения контента. Когда я объяснил что на хостинге сайт музыкальной группы и загружают они только свое видео и музыку, хостер не стал препятствовать и/или просить денег за это. Всегда можно договорится (если обосновать) вы это пробовали?
+2
Тоже сталкивался с похожей задачей и уперся в пределы памяти.
Почему они не сделали простой произвольный доступ к содержимому файла, вместо единственно возможного чтения его целиком в память? Неудобно…
Интересно, из флеша это можно обойти?
Почему они не сделали простой произвольный доступ к содержимому файла, вместо единственно возможного чтения его целиком в память? Неудобно…
Интересно, из флеша это можно обойти?
0
Подскажите, насколько ресурсоемки подобные операции (подсчет размера файла, перебор по частям) в javascript? Скажем, потянет ли средний клиент обсчет файла размером 1-2 Гб (не берем в расчет загрузку, речь только о клиентской стороне)?
0
Как вариант — через промежуточный хост с нормальными настройками ;) Который бы уже бил файл и сливал на основной по кусочкам.
0
Боюсь, этот вариант еще более экзотичен. Кто будет оплачивать этот промежуточный хост? Клиент? Зачем тогда весь этот апофеоз, если в этом случае можно просто захостить сайт на этом хосте? Может быть, наша компания? Но что тогда будет если клиент прекратит сотрудничество с нами? Наша разработка прекратит функционировать, что не очень красиво.
0
НЛО прилетело и опубликовало эту надпись здесь
Вот вы извращенцы =)
0
А вот как преобразуется серверная часть в случае, если передача ведется в асинхронном режиме:
А на клиенте, соответственно:
$filename = "/dir/to/save/".$_POST['filename'];
fclose(fopen($filename, 'a')); // создадим файл
$f = fopen($filename,"r+");
fseek($fp, $_POST['offset']);
fputs($f,base64_decode($_POST['chunk']));
fclose($f);
А на клиенте, соответственно:
$.post('/upload.php',{
filename:filename,
chunk:data.substring(pos,pos+upload_chunk_size),
offset: pos
});
0
Только одно «но» — если все-таки у вас работает декодирование base64 от обрезанной строки, то надо offset тоже правильно посылать, а именно — умножать на 3/4 (см. base64 на википедии). Т.е. либо на клиенте, либо на сервере нужно написать:
Или
Извините, не сразу понял, что в base64 данные приходят :).
offset: pos*3/4
Или
fseek($fp, $_POST['offset']*3/4);
Извините, не сразу понял, что в base64 данные приходят :).
0
Кстати… вместо отключения асинхронности лучше бы отправляли номер чанка и собирали при получении последнего
0
Похожее решение, сделанное в недрах mail.ru
habrahabr.ru/company/mailru/blog/102551/
habrahabr.ru/company/mailru/blog/102551/
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Закачка больших файлов или Как обойти ограничения дешевого виртуального хостинга