Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с XMLHttpRequest Level 2 
:(
    Опции темы
barcelona
Дата 19.7.2011, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Здравствуйте!
Пытаюяь загружать файлы через XMLHttpRequest Level 2, и с большими файлами (больше 60Mb) возникли проблемы. Получаю следующее:

Fatal error</b>: Allowed memory size of 209715200 bytes exhausted (tried to allocate 71899100 bytes)

Размер выделяемой памяти на тестовом сервере 200 Mb, а на реальных хостингах может быть и меньше. Не знаю, можно ли как-то обойти эту проблему. Может быть дело не в JS-коде, а в настройках web-сервера? Мой код: 
Код

<form id="myform" name="myform">
  <input type="file" name="failik" id="failik" onchange="sendFile(this.form);">
</form>

<div id="uploadProgress"></div>
<script type="text/javascript">
<!--
  function sendFile(form) {
    var files = document.getElementById("failik").files;
    
    for (var i = 0; i < files.length; i ++) {
      file = files[i];
      var name = file.fileName != null ? file.fileName : file.name;
      var size = file.fileSize != null ? file.fileSize : file.size;
                     
      var xhr = new XMLHttpRequest();
                           
      xhr.upload.onprogress = function(e){
          if (e.lengthComputable){
              var value = Math.round(e.loaded / e.total * 100);
              var text = value + '% from ' + e.total;
              document.getElementById("uploadProgress").innerHTML = text;
          }
      };
      
      xhr.onreadystatechange = function(){            
          if (xhr.readyState == 4) {
              alert(xhr.responseText);                   
          }
      };
      
       xhr.open("POST", "/do-nothing.php?file=" + name, true);
       xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
       xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
       xhr.setRequestHeader("Content-Type", "application/octet-stream");
       //Я пробовал так
       var formData = new FormData();
       formData.append(name, file);
       xhr.send(formData);
      //И так
      var formData = new FormData(form);
      xhr.send(formData);
      //И так
      xhr.send(file);
      //Результат один - одна и та же ошибка
    }
  }
//-->
</script>

PM MAIL   Вверх
barcelona
Дата 19.7.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



На хабре  в конце статьи приведён пример отправки файла на сервер по частям. Пусть будет работать не везде, но хоть что-то. Только смутило замечание в конце статьи: "Скрипт сборки файла на сервере не прикладываю — там все очевидно.". Мне как раз не очевидно.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.