Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Прямая ссылка на скачку открывает файл в окне браузера

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Все файлы при загрузке почему-то окрываются в окне браузера
Dion
Отправлено: 15 Декабря, 2010 - 14:28:40
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




В файле download.php обрабатываются прямые ссылки на файлы, лежащие на сервере.

PHP:
скопировать код в буфер обмена
  1. header ("Location: http://moysait.ru/files/progra.rar"); exit;


При этом файл начинает открываться во вкладке браузера, и не только файлы с расширением *.RAR, но и даже *.EXE и др.! Даже если выбрать "сохранить по ссылке как..." и даже тогда в диалоговом окне сохранения файла, вместо родного расширения приписывает .htm - progra.htm
От браузера не зависит...

В интернете множество вопросов на эту тему, но ни одного внятного решения этой проблемы не нашёл... Огорчение

Как сделать, чтобы файлы сохранялись как положено?
 
 Top
Мелкий Супермодератор
Отправлено: 15 Декабря, 2010 - 14:43:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)






-----
PostgreSQL DBA
 
 Top
Dion
Отправлено: 15 Декабря, 2010 - 15:48:42
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Мелкий пишет:
http://forum.php.su/topic.php?forum=35&topic=11

Скрипт представленный в этой теме работает хорошо, но вопрос в нагрузке на сервер.

PHP:
скопировать код в буфер обмена
  1. $file = ("mashka.rar");
  2. header ("Content-Type: application/octet-stream");
  3. header ("Accept-Ranges: bytes");
  4. header ("Content-Length: ".filesize($file));
  5. header ("Content-Disposition: attachment; filename=".$file);  
  6. readfile($file);


меня немного смущает readfile, я не очень разбираюсь во внутренних механизмах кода, но в этом случае файл не загоняется случайно в ОЗУ сервера?

Передо мной стоит задача написать систему, которая по минимуму нагружает сервер.
 
 Top
Viper
Отправлено: 15 Декабря, 2010 - 16:19:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Dion в таком случае читайте и отдавайте файл кусками. readfile читает весь файл а потом отдает.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
JustUserR
Отправлено: 15 Декабря, 2010 - 20:26:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Dion Для осуществление корректной загрузки файловых объектов производмого на основе обращения пользовательского браузера к ассоциированому URL-пути без включения на ерверной стороне механизмов alias-инга и действенного перенаправленя - необходимо проведения конфгурации виртуального хоста обеспечивающего отпраку требуемых информационных полей в HTTP-заголовках
В частности для файловых объектов для потенциальной загрузки пользователем расположенние которых осуществлена в заданной директории - возможно использование следующей конфигурации htaccess - хотя более оптимальным вариантом является обеспечние подключения модуля управления HTTP-заголовками и создания локального правала целевого отправляемого информационнго поля в соответсвии с предоставленными значениями целевого имнеи ресурса
CODE (text):
скопировать код в буфер обмена
  1. <Files *>
  2. DefaultType application/octet-stream
  3. ForceType application/octet-stream
  4. </Files>


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Invert
Отправлено: 16 Декабря, 2010 - 06:24:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Нояб. 2010  


Помог: 5 раз(а)




Dion пишет:
меня немного смущает readfile, я не очень разбираюсь во внутренних механизмах кода, но в этом случае файл не загоняется случайно в ОЗУ сервера?

Ресурсы будет потреблять, особенно "висящие" процессы пли длительных закачках.
 
 Top
JustUserR
Отправлено: 16 Декабря, 2010 - 19:26:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Invert пишет:
Ресурсы будет потреблять, особенно "висящие" процессы пли длительных закачках.
Осуществление включения дополниельной системы передачи файлового объека целевому пользователю посредством использования PHP-приложения обеспичивающего получения и обработку запросов к целевым элементам не является обязательным для решения - поскольку возможности обслуживающего web-сервера позволяют осуществлять конфигурацию параметров для группы URL-адресов или связанных объектов файловой системы ассоциированных с текущим виртуальным хостом


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB