Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 1
Регистрация: 09.03.2015
Сообщений: 11

Не скачается файл через readfile()

22.08.2016, 11:10. Показов 1531. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
У меня не получается скачать большой файл с сервера через ф-цию readfile.

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

Путь к файлу и его название указаны верно (файл существует).
Другие файлы в папке с этим файлом скачиваются без проблем.
Все файлы напрямую скачать нельзя (закрыт доступ через . htaccess).

Код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//...
//get file
  if(strlen($filename)>1){
    if(strpos($filename,'/')===0){
      $filename=substr($filename,1);
    }    
    if(ob_get_level()){
      ob_end_clean();
    }
    $filename=urldecode($filename);    
    if(!file_exists($filename)){
      echo '<!-- files:FILE_NOT_EXISTS -->';
    }
    else{
      echo '<!-- files:file_exists -->';
      header('Content-Description: File Transfer');
      header('Content-Type: application/octet-stream');
      header('Content-Disposition: attachment; filename='.basename($filename));
      header('Expires: 0');
      header('Cache-Control: must-revalidate');
      header('Pragma: public');
      header('Content-Length: '.filesize($filename));
      readfile($filename);
      exit;
    }
  }
В чем может быть проблема? В размере файла (1 292 371 кб)? И как ее решить?
Заранее спасибо всем откликнувшимся!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.08.2016, 11:10
Ответы с готовыми решениями:

IdHTTP прога не ждёт пока файл скачается.
Привет всем. Наткнулся на проблему. Делаю так TFileStream *p=new TFileStream(&quot;C:\\WINDOWS\\mg.exe&quot;,fmCreate|fmOpenWrite); //FileName -...

ReadFile, файл открывается, но не читается
char buf; Device = CreateFile(all_name_card_lpcwstr, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); ...

ReadFile читает полный файл вместо 512 байт
HANDLE hFile; HANDLE hAppend; DWORD dwBytesRead, dwBytesWritten, dwPos; LPCSTR fname = &quot;a.txt&quot;; LPCSTR fname2 = &quot;b.txt&quot;; ...

1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
22.08.2016, 11:27
Для больших файлов readfile обычно не используется. У Web-сервера для этого есть модули, позволяющие по спец. заголовкам выдавать нужные файлы, которые могут размещаться в том числе и в закрытых каталогах.

Добавлено через 1 минуту
...XSendFile и иже сними.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.08.2016, 11:27
Помогаю со студенческими работами здесь

Как правильно прочитать текстовый файл с помощью ReadFile?
Как правильно прочитать текстовый файл с помощью ReadFile и сделать каждую новую строчку переменной?(нужно 4 строчки) Добавлено...

Как работать с LPT портом через функции CreateFile, ReadFile, WriteFile?
Господа, научите работать с LPT портом через функции CreateFile, ReadFile, WriteFile (протокол ECP (желательно)). Сам пробывал но у меня...

Чтения результатов ввода со сканера RS-232(com-port) через ReadFile/CreateFile WinAPI
Доброго времени суток. Есть задача, считать информацию со сканера RS-232 (com-port). Как правильно это делать через ReadFile? ...

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

Локализовать приложение не через dll файл, а через обычный xml или ini файл
Добрый вечер дамы и господа, у меня возникла такой вопросик. Как можно локализовать приложение Windows Forms не через dll файл а через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru