Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Habetdin


Автор проектов


Сообщения: 3650
Благодарности: 1499

Профиль | Сайт | Отправить PM | Цитировать


zvezda_t, можно тогда полностью "закрыть" папку от просмотра через веб:
Код: Выделить весь код
Order allow,deny
Deny from all
А файлы отдавать своим внутренним скриптом, который знает, авторизован ли пользователь. Как я понял,
Цитата zvezda_t:
с помощью функций php »
Пример на PHP (спойлер)
PHP код: Выделить весь код

<?php
function imDownload($file_path// функция, отдающая файл $file_path в браузер. при использовании в виде "i.php?img=scr.png" не забывайте фильтровать входящее имя файла, а то можно будет посмотреть не только изображения при наличии авторизации ;)
{
    
$file_path realpath($file_path);
    
$file_info pathinfo($file_path);
    switch(
$file_info['extension']) {
        case 
'gif'$file_mime 'image/gif'; break;
        case 
'png'$file_mime 'image/png'; break;
        case 
'jpe': case 'jpeg':
        case 
'jpg'$file_mime 'image/jpg'; break;
        default: 
$file_mime 'application/octet-stream';
    }
    
    if(
file_exists($file_path))
    {
        
// можно раскомментировать следующую строку, если нужно поведение "загружаемого файла"
        // header('Content-Disposition: attachment; filename='. $file_info['basename']);
        
header('Content-Transfer-Encoding: binary');
        
header('Content-Length: 'filesize($file_path));
        
header('Content-Type: '$file_mime);
        
header('Cache-Control: must-revalidate');
        
header('Cache-Control: private'false);
        
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        
header('Pragma: no-cache');
        
ob_clean(); flush();
        
readfile($file_path);
        exit();
    }
    else
        die(
'No such file');
}
// некий пример со статическим именем файла :)
if($authimDownload('private_folder/Image_2013-10-03_003.png'); // если есть авторизация - отдаем юзеру файл


Реальный путь до файла при этом не будет выдан - пользователь увидит адрес скрипта. И даже с известным путем нельзя будет скачать файл без доступа к серверу, папка то закрыта для просмотра через web

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 22-11-2013 в 04:30.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:05, 14-11-2013 | #4