Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ограничение по загрузке на сервер
 
 автор: captain-america   (02.11.2010 в 10:34)   письмо автору
 
 

Не можете подсказать, есть ли такая возможность в Apache.

Скажем я указываю в настройках загрузить не более 50 Кб, и скажем когда файл будет грузиться на сервер во временное хранилище, то закачка обрубилась бы на 50 кб..
Просто услвоия некоторых хостеров по траффику, чтобы исходящий был в 4 раза больше входящего, и мне бы хотелось, чтобы входящий был минимален.

  Ответить  
 
 автор: Uzer44   (02.11.2010 в 10:37)   письмо автору
 
   для: captain-america   (02.11.2010 в 10:34)
 

в найстройках PHP есть такая опция посмотрите ваш php.ini

  Ответить  
 
 автор: captain-america   (02.11.2010 в 10:43)   письмо автору
 
   для: Uzer44   (02.11.2010 в 10:37)
 

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

  Ответить  
 
 автор: DJ Paltus   (02.11.2010 в 11:46)   письмо автору
 
   для: Uzer44   (02.11.2010 в 10:37)
 

Мне кажется, настройки post_max_size и upload_max_filesize срабатывают уже после того, как файл был передан на сервер, то есть от трафика не спасают. Или нет?

  Ответить  
 
 автор: Uzer44   (02.11.2010 в 16:27)   письмо автору
 
   для: DJ Paltus   (02.11.2010 в 11:46)
 

думаю вы правы. что лить оно будет а потом поругается что размер превышает

  Ответить  
 
 автор: sim5   (02.11.2010 в 17:33)   письмо автору
 
   для: DJ Paltus   (02.11.2010 в 11:46)
 

А вы попробуйте, и получите типа:
Warning: POST Content-Length of ХХХХХХХХ bytes exceeds the limit of ХХХХХХХ bytes in....

  Ответить  
 
 автор: Uzer44   (02.11.2010 в 16:27)   письмо автору
 
   для: captain-america   (02.11.2010 в 10:34)
 

еще есть в apache (mod_) директива в httpd.conf
LimitRequestBody 50000 (в байтах)
она "рубает", прямо когда файл загружается на httpd.
ещё можно средствами JS Определять объём файла и рубать его алертом

  Ответить  
 
 автор: DJ Paltus   (02.11.2010 в 16:35)   письмо автору
 
   для: Uzer44   (02.11.2010 в 16:27)
 

Джаваскриптом не выйдет, по крайней мере, кроссбраузерно. В ИЕ можно через activeX как-то добраться до размера файла, да в ФФ есть какой-то специальный параметр тега input, который я в свое время так и не смог заставить работать и благополучно забыл. Остается flash. Вон, если ВКонтакте альбом заливать, оно даже превьюхи делает до загрузки; думаю, та же технология позволит сцапать и размер.

  Ответить  
 
 автор: Uzer44   (02.11.2010 в 16:49)   письмо автору
 
   для: DJ Paltus   (02.11.2010 в 16:35)
 

http://pecl.php.net/package/uploadprogress

  Ответить  
 
 автор: DJ Paltus   (02.11.2010 в 16:41)   письмо автору
 
   для: Uzer44   (02.11.2010 в 16:27)
 

Хотя вот тут что-то предлагают.

  Ответить  
 
 автор: sim5   (02.11.2010 в 17:59)   письмо автору
 
   для: DJ Paltus   (02.11.2010 в 16:41)
 

Это работа ActiveX компоненты, и такое только с разрешения пользователя может работать, а потому не совсем приемлемо, тем более FSO, которым у клиента можно такое натворить, если разрешить.
Есть более безопасное и доступное решение с помощью JS:
function imgVal(s) {  
  var ims = new Image();  
  ims.src = s;  
  ims.onload = function() {alert(ims.fileSize);}  
}  
</script>  

<input type="file" name="image" onchange="imgVal(this.value)">

  Ответить  
 
 автор: DJ Paltus   (03.11.2010 в 11:54)   письмо автору
 
   для: sim5   (02.11.2010 в 17:59)
 

Надо сказать, что данный пример не работает минимум в ФФ, ни по onchange, ни по onblur. Да и вопрос отключенного JS остается в силе. Flash пока что безальтернативен получается.

  Ответить  
 
 автор: sim5   (03.11.2010 в 12:06)   письмо автору
 
   для: DJ Paltus   (03.11.2010 в 11:54)
 

Да, свойство fileSize поддерживает только IE, другие браузеры не поддерживают, как и не поддерживают полезное свойство mimeType, и др., "война браузерная" всему виною. )
А ActiveX это вообще бомба, которую только неоптый юзер может разрешить "взорвать" у себя на странице.

PS. Кстати, FSO тоже не будет работать из под FF и прочих, кроме IE.

  Ответить  
 
 автор: sim5   (02.11.2010 в 17:15)   письмо автору
 
   для: Uzer44   (02.11.2010 в 16:27)
 

>ещё можно средствами JS Определять объём файла и рубать его алертом

Ага, прямо таки страшная защита.... выключил JS и нет защиты.

  Ответить  
 
 автор: Uzer44   (03.11.2010 в 09:05)   письмо автору
 
   для: sim5   (02.11.2010 в 17:15)
 

это никто не оспаривает, а просто перекуриваются варианты.

  Ответить  
 
 автор: sim5   (03.11.2010 в 10:24)   письмо автору
 
   для: Uzer44   (03.11.2010 в 09:05)
 

JS вариант, это просто сервис, и никак им вы не рубанете ничего. ;-)

  Ответить  
 
 автор: Uzer44   (03.11.2010 в 12:14)   письмо автору
 
   для: sim5   (03.11.2010 в 10:24)
 

не соглашусь если применить AJAX то вполне можно отследить кол-во байт загруженного темпфайла и если превысит рубануть.

  Ответить  
 
 автор: sim5   (03.11.2010 в 12:41)   письмо автору
 
   для: Uzer44   (03.11.2010 в 12:14)
 

Не соглашайтесь, но JS это просто сервис, который можно банально отключить, да и JS не у каждого браузера такую инфу выдаст, а все другое это уже вторжение в личное. ;-)

  Ответить  
 
 автор: captain-america   (03.11.2010 в 17:00)   письмо автору
 
   для: Uzer44   (02.11.2010 в 16:27)
 

Насчет js я уже думал, но как заметили ниже его легко отключить.

Можно насчет LimitRequestBody 50000 (в байтах) поподробней.
Каков будет сценарий, если будет больше 50К, он выдаст ошибку? Если да то в каком виде?

  Ответить  
 
 автор: DJ Paltus   (03.11.2010 в 17:09)   письмо автору
 
   для: captain-america   (03.11.2010 в 17:00)
 

http://www.lexa.ru/apache-talk/msg06286.html

  Ответить  
 
 автор: captain-america   (03.11.2010 в 17:54)   письмо автору
 
   для: DJ Paltus   (03.11.2010 в 17:09)
 

Спасибо за ответ, буду дальше мучить форум Апаче как все это сделать, чтобы нормально работало.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования