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 :: Как отдать пользователю файл скриптом
Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007 Откуда: Азов
Помог: 0 раз(а)
valenok, что-то я ничего не понял из вашего сценария...
Например, возникла такая задача. Есть файл http://my-site.ru/files/file.rar/, юзер набирает в браузере этот адрес, а мне нужно сделать, чтобы загрузка НЕ произошла, а пользователь мог получить данный файл ТОЛЬКО если, скажем, введёт пароль с определённой стрнаицы с формой. Может, здесь нужно задействовать .htaccess? Я его почти не знаю. Что порекомендуете?
----- Yuriy
evgenijj
Отправлено: 03 Января, 2008 - 00:02:49
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Yuriy пишет:
Например, возникла такая задача. Есть файл http://my-site.ru/files/file.rar, юзер набирает в браузере этот адрес, а мне нужно сделать, чтобы загрузка НЕ произошла, а пользователь мог получить данный файл ТОЛЬКО если, скажем, введёт пароль с определённой стрнаицы с формой.
echo'Скачивать файлы могут только зарегистрированные пользователи';
}
Чтобы файл archive.rar нельзя было скачать напрямую, надо защитить директорию
/downloads/files/
с помощью .htaccess, поместив в него строку
Deny from all
Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007 Откуда: Азов
Помог: 0 раз(а)
evgenijj, спасибо большое, всё работает!
Понимаете, я такой человек, который хочет понять, а не просто получить готовое решение. Можете парай слов объяснить как это работает, что за механизм используется? Не откажусь от небольшого комментария к каждой строке по ветке 'then' Естественно, кроме первой...
----- Yuriy
evgenijj
Отправлено: 03 Января, 2008 - 11:07:45
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Yuriy пишет:
Понимаете, я такой человек, который хочет понять, а не просто получить готовое решение. Можете парай слов объяснить как это работает, что за механизм используется? Не откажусь от небольшого комментария к каждой строке по ветке 'then' Естественно, кроме первой...
Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007 Откуда: Азов
Помог: 0 раз(а)
evgenijj, спасибо! Стало "светлее" ;)
----- Yuriy
Yuriy
Отправлено: 06 Января, 2008 - 00:46:05
Частый гость
Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007 Откуда: Азов
Помог: 0 раз(а)
Посветлело, но не настолько, чтобы решить очередной вопрос. Положил картинку в эту же защищённую с помощью .htaccess директорию. Просто так она недоступна. Теперь мне нужно, чтобы пользователь с паролем не скачать её мог, а посмотреть на экране. То есть, программа должна вывести её в <img>.
Я в тупике…
----- Yuriy
evgenijj
Отправлено: 06 Января, 2008 - 01:33:53
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Yuriy пишет:
Посветлело, но не настолько, чтобы решить очередной вопрос. Положил картинку в эту же защищённую с помощью .htaccess директорию. Просто так она недоступна. Теперь мне нужно, чтобы пользователь с паролем не скачать её мог, а посмотреть на экране. То есть, программа должна вывести её в < img>.
Я в тупике…
А вот это уже не по теме. Но вообще, это делается так
< img src="image.php?name=picture.png" />
Файл image.php
1. проверяет существование файла './downloads/files/'.$_GET['name']
2. считывает файл изображения с помощью функций imagecreatefrompng(), imagecreatefromjpeg(), imagecreatefromgif()
$img = imagecreatefrompng( './downloads/files/'.$_GET['name'] )
3. посылает заголовок header('Content-type: image/png'); (или jpg, или gif)
4. выводит изображение в браузер imagepng($img);
5. освобождает память imagedestroy($img);
die('Error: The file '.$local_file.' does not exist!');
}
?>
Вездеход
Отправлено: 06 Июня, 2008 - 07:40:09
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
D1mOn пишет:
А можно таким образом защитить директорию с видео/аудио файлами?
этим способом нельзя. можно файликом .htaccess
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
ASHOOT-x86
Отправлено: 06 Августа, 2008 - 23:09:58
Новичок
Покинул форум
Сообщений всего: 53
Дата рег-ции: Июль 2008 Откуда: Россия, Краснодар
Помог: 0 раз(а)
Парни, все пучком. Вот представьте такой пример, скорость инета у юзера оч маленькая (например пользователь мобилу использует как модем). Он начал качку большого файла форсированным данным методом, в диспетчере задач висит задача PHP.exe и ее размер в оперативе - размер файла, который он качает и прекратится эта задача только когда пользователь окончательно заберет файл, либо прервет скачивание. Будет нагрузка на проц, около 5%. Представьте, если несколько будет таких пользователей одновременно...... Че, сидеть и завершать процессы PHP.exe и тем самым прерывать загрузку файла...? Я знаю что. Если это хостинг, вас оттуда пошлют и закроют аккуант, если ваш личный сервер - просто спалите его и останетесь на бобах. Думайте. (Добавление)
И еще, мужики, забыл сказать, что в оперативе хранится все, что пых передал в буфер, все что выполняется и сторонние процессы. Если еще использовать и ограничитель по скорости, то мы вообще несколько тяжелых функций используем. Капец будет компу при первом же качки через такой скрипт
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.