Как скрыть путь до файла

NeoLynx

Новичок
Как скрыть путь до файла

Сижу пишу скрипт всё готово но столкнулся со следующим вопросом:

Пользователи закачивают файлы на сервер, каждый пользователь в свою папку.
При этом один пользователь не должен попадать в папки других.

Есть возможность скачать файл, соответственно пользователь видит путь до своего файла.
Немного подумав и помучавшись, теоретически он может попасть к файлам других пользователей.

Листинг директорий закрыт через index.html в каждой папке, а вот как быть с прямым путем до файла?
 

Domovoj

Guest
Re: Как скрыть путь до файла

Автор оригинала: NeoLynx
Сижу пишу скрипт всё готово но столкнулся со следующим вопросом:

Пользователи закачивают файлы на сервер, каждый пользователь в свою папку.
При этом один пользователь не должен попадать в папки других.

Есть возможность скачать файл, соответственно пользователь видит путь до своего файла.
Немного подумав и помучавшись, теоретически он может попасть к файлам других пользователей.

Листинг директорий закрыт через index.html в каждой папке, а вот как быть с прямым путем до файла?
Положи .htaccess к каждому в папку с паролем.
 

NeoLynx

Новичок
htaccess не пройдет, т.к. тогда нужно каждому еще и персональный логин с паролем выдавать, иначе он и свои файлы не получит.

А смысл скрывать их через mod_rewrite, когда он в виндовом окне увидит полный урл до файла.
 

WMix

герр M:)ller
Партнер клуба
NeoLynx
да брось ты увидит представим путь как file.php?id=323678hfa7389... в смысле мд5 тогоже полного пути
но тогда их в базе держать надо!
или file.php?name=myfile.txt и обрати внимание на сесию!!

и в варианте с .htaccess можно прописать так урл что зайдеш без пароля!!!



забыл дописать про мод_реврите

если спрятать папку а давать её по сесии урл тип /download/file.txt

a rewritom заменять на правильное значение, и выплевывать это все неким пхп скриптом... тоже вариант
 

NeoLynx

Новичок
а в файле file.php?name=myfile.txt что писать?

если Header("Location:) на файл, то человек увидит полный путь.
На уровне файла проверка отдавать или нет будет, а на уровне файловой системы нет.

А если писать file.php?id=323678hfa7389, а в файле сделать header("Location:)
При скачивании в виндовом какой путь будет писаться?

И совсем ламерский вопрос, удаленно можно сделать листинг, какие файлы лежат в папке?
 

WMix

герр M:)ller
Партнер клуба
PHP:
	function download(){
		header( "Content-type: ".$this->type );
		header( "Content-Length: ".$this->getSize() );
		header( "Content-Disposition: attachment; filename=".$this->getName().$this->getExtension() );
		header( "Content-Description: Download Data" );
		echo $this->file_get_contents();
		exit;
	}
-~{}~ 12.08.05 13:22:

PHP:
	function getListDir( $fPath ){
		$dirs = array(); 
		$files = array(); 
		if( $root = opendir( $fPath ) ){
			while( $file = readdir( $root ) ){
				if( $file == "." || $file == ".." )                     
					continue;
				elseif( is_dir( $fPath ."/". $file ) )
					$dirs[] = $file;
				else
					$files[] = $file;
			}
			return array( $dirs, $files );
		}
		else return array();
	}
 

NeoLynx

Новичок
Не совсем понятно куда что пихать, можно чуть коментов?
 

WMix

герр M:)ller
Партнер клуба
$this->type это MIME-TYPE
$this->getSize() Размер файла
$this->getName().$this->getExtension() Имя Файла

$this->file_get_contents() это можно заменить на file_get_contents(ПОЛНОЕ Имя Файла)

getListDir( $fPath ) передать путь к папке от корня
 

NeoLynx

Новичок
Похоже это откуда-то вырванный код...

ф-ции getName, getSize еще надо объявлять?

Как связаны
getListDir() и download() ?
аналог getListDir у меня уже написан, могу полностью параметры файла передать.

И какой путь будеть писаться при скачивании?
 

WMix

герр M:)ller
Партнер клуба
яж незнаю твой консепт... понятно что надо прописать...

header( "Content-Length: ".$this->getSize() ); это можеш выкинуть, но броузер клиента не будет знать скок секунд ждать
$this->getName().$this->getExtension() просто имя файла к примеру file.txt

getListDir( $fPath ) возврашяет array( МасивДиректорий, МасивФайлов )

все написал уже...!!!

$this заменяй на $ если не ООП пишеш!
ну а нехватаюшие параметры просто обьяви сам

мой проводник состоит из более чем 3000 строк и это только бизнес-логика ... никакого вида. Сюда дампить нехочу, а если дарить, то я с тобой всю жизнь проведу пока настроим

>И какой путь будеть писаться при скачивании?
какой придумаеш...
 
Сверху