Получение бинарных файлов с сервера

rispa

Новичок
Получение бинарных файлов с сервера

скрипт выводит содержимое указанного в конфиге каталога. плюс при нажатии на файл должна быть возможность его скачать. Как организовать в цикле передачу данных из файла при нажатии на файл?


скрипт состоит из 3х файлов: function.php, index.php и config.php


содержимое config.php:

<?php
//указанная папка
$url="c:/";
?>

содержимое function.php

<?php
//листинг
function scan_dir ($url,$flag) {
if (is_dir($url)) {
if ($dir = opendir($url)) {
while ($file = readdir($dir)) {
if ($file != "." && $file != "..") {
if(is_dir($url."/".$file)) {
$folders[] = $file;
}
else {$files[] = $file;
}
}
}
}

closedir($dir);
}

if($flag == 1) {
return $folders;
}
if($flag == 0) {
return $files;
}
}

function up( $path ){
$last = strrchr( $path, "/" );
$l = strlen( $last );
$p = strlen( $path );
return substr( $path, 0, $p-$l );
}

//размер файла
function size($path) {
return substr(filesize($path)/1024, 0, 4);
}
?>

содержимое index.php:

<?php
include("config.php");
include("function.php");

if($_GET['url']) {
$url = $_GET['url'];
}

echo '<a href="."><img src="img/home.jpg" border="0"></a>&nbsp;&nbsp;';
echo '<a href="index.php?url='.up($url).'"><img src="img/up.jpg" border="0"></a><br><br>';

if(scan_dir($url,1)) {
foreach(scan_dir($url,1) as $d) {

echo '<img src="img/dir.jpg"><a href="index.php?url='.$url."/".$d.'&old='.$url.'">'.$d.'</a><br>';
}
}

if(scan_dir($url,0)) {
foreach(scan_dir($url,0) as $d)
{
echo '<img src="img/'.substr($d,-3).'.jpg"><a href="">'.$d.' - '.size($url."/".$d).'Кб</a><br>';
}
}

?>
 

fixxxer

К.О.
Партнер клуба
удаляешь этот говнокод, и пишешь в .htaccess который кладешь в каталог с содержимым для скачки строку Options +Indexes

:D
 

rispa

Новичок
это задание, работать нужно именно с этим говнокодом, в такой последовательности)

dimagolov, я нуб совсем, но это прочитала. хочется конретики, если можно
 

dimagolov

Новичок
rispa, начни с того, что набирай в строке адреса браузера ссылку на свой сайт и бинарный файл и добейся того, чтобы браузер начинал его скачивать. Как получится, то ссылку можно будет вставить в html страничку в тег <a> и не набирать руками, в тыцать. Вот после этого, можно будет писать php код, который эти ссылки нагенерит для определенной директории.
 

rispa

Новичок
Автор оригинала: dimagolov
rispa, начни с того, что набирай в строке адреса браузера ссылку на свой сайт и бинарный файл и добейся того, чтобы браузер начинал его скачивать. Как получится, то ссылку можно будет вставить в html страничку в тег <a> и не набирать руками, в тыцать. Вот после этого, можно будет писать php код, который эти ссылки нагенерит для определенной директории.
вот последнее предложение и было предложено в качестве вопроса. Прямая ссылка не может быть использована, в скрипте в принципе отсутствует возможность получения файлов((
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Прямая ссылка не имеет отношения к скрипту.
Разбирайся что есть ссылка и что делает скрипт.
 

Lightning

Трудоголик
dimagolov
grigori
Насколько я понял, TCу нужно сделать скачку файлов не из докрута веб-сервера.
 

rispa

Новичок
Lightning, мне нужно сделать доступной для скачивания свою папку с файлами через веб-интерфейс.
 

dimagolov

Новичок
rispa, в условиях есть положение папки относительно DOCUMENT_ROOT web-сервера? То есть папка любая, или под DOCUMENT_ROOT?
 

dimagolov

Новичок
тогда придется решить 2 независимые задачи:
1. скрипт отображение списка файлов с ссылками на скрипт отдачи с каким-то идентификатором файла в качестве параметра
2. скрипт отдачи файла по параметру. заранее предупреждаю, что используя в качестве параметра имя файла надо не подставится когда хакер вася захочет посмотреть файл "../../etc/passwd", к примеру

п.с. кстати, а содержимое поддиректорий надо отображать или нет?
 

rispa

Новичок
надо. ну, то есть кликаешь поддиректорию и выводится список и ее файлов.

скрипт отображения списка файлов приведен в первом посте)
 

Фанат

oncle terrible
Команда форума
rispa
а можно задачу целиком услышать, в той формулировке, в которой она была поставлена?

-~{}~ 25.04.09 07:07:

А то диалог
- папка любая?
- абсолютно любая!
уж очень напоминает историю про одного незадачливого мужчину, который обратился к врачебной помощи перед свадьбой...
 

rispa

Новичок
да я вроде пыталась изложить в первом сообщении). нужен скрипт для представления через сеть доступа к локальным каталогам.
Что хочу - сделать доступным для скачивания свои файлы через браузер. скрипт получает запрос, показывает указанный каталог. Корневой каталог - откуда начинать показ - задается в конфиге скрипта. возможность просмотра поддиректорий тоже должна быть
 

Фанат

oncle terrible
Команда форума
задача просматривать каталоги или написать скрипт?
 

Фанат

oncle terrible
Команда форума
почему конечно?
если скрипт для просмотра каталогов, то непонятны извраты с отдачей любых файлов.
 

iceman

говнокодер
rispa
используй FTP +) или поставь у себя DC++ Hub +) и будет тебе "общий доступ" +)
 
Сверху