Скрипт скачивания файлов с сайта

12
NS
На сайте с 02.06.2007
Offline
0
5490

У меня такая проблема.

Как сделать при помощи Perl что бы зарегистрированный посетитель моего сайта мог скачать

предназначенные для него файлы от 1-го до 30-ти не зная откуда он их качает.

Ссылки на его файлы должна быть типа <a

href=каталог_посетителя_1/файл1.zip>Скачать файл1.zip</a>,<a

href=каталог_посетителя_1/файл2.zip>Скачать файл2.zip</a> .... ...... ....<a

href=каталог_посетителя_1/файл30.zip>Скачать файл30.zip</a> и т.д. То же для

других посетителей <a href=каталог_посетителя_2/файл1.zip>Скачать

файл1.zip</a>,

<a href=каталог_посетителя_2/файл2.zip>Скачать файл2.zip</a> .... ......

.....<a href=каталог_посетителя_2/файл30.zip>Скачать файл30.zip</a> и т.д.

Если в каталоге посетителя нет файлов, то и ссылок на его странице нет.

Помогите! Очень срочно нужно!

K
На сайте с 12.07.2006
Offline
295
Kpd
#1
NS
На сайте с 02.06.2007
Offline
0
#2

Очень лаконично:) ... но ничего не понятно😕

K
На сайте с 12.07.2006
Offline
295
Kpd
#3

С помощью mod_rewrite можно относительно легко решить эту проблему. Если вообще ничего не понятно - найми программиста :)

NS
На сайте с 02.06.2007
Offline
0
#4
Kpd:
- найми программиста :)

Ты готов помочь?

Сколько стоит изготовить такой скрипт? Срок?

L
На сайте с 02.12.2006
Offline
28
Lys
#5

NikSTamb, а где файлы на самом деле лежат? На том же сервере, в специальной папке? И эту папку нельзя засвечивать?

Возьму на продвижение 2-3 сайта. Стоимость оценивается по И.Ашманову (http://www.optimization.ru/articles/seo2007) - по частотности запроса в Рамблере. Собственная методика и П/О для анализа ссылочного ранжирования. Общая паника не волнует!
K
На сайте с 12.07.2006
Offline
295
Kpd
#6

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

NS
На сайте с 02.06.2007
Offline
0
#7
Lys:
NikSTamb, а где файлы на самом деле лежат? На том же сервере, в специальной папке? И эту папку нельзя засвечивать?

Да на том же сервере и папку нельзя засвечивать.

На одном из форумов был поднят схожий вопрос: "Как можно авторизированному юзеру выдавать линку на скачку файла, так что бы не светилось реальное раположение файла на сервере.

Задача в том что бы скачать файл можно было только авторизированным пользователям, но даже авторициронный пользователь не должен видеть реальное расположение файлов на сервере. Как это можно реализовать? как делать авторицазию рассказывать не надо "

И ему предложены варианты:

binmode(STDOUT);

local $/ = undef;

open(file, 'file.zip');

binmode(file);

print <file>;

close(file);

my $file="doc.zip";

print "Content-type: application/octetstream\n";

print "Content-length: ",-s $file,"\n";

print "Content-disposition: inline; filename=\"",$file,"\"\n\n";

open(FILE, "$file");

binmode FILE;

binmode(STDOUT);

while(read(FILE, my $data, 1024)){print $data}

close FILE;

binmode(STDOUT);

local $/ = undef;

open(F, $file);

$size = (stat(F))[7];

print "Content-Type: application/octetstream\n";

print "Content-Transfer-Encoding: binary\n";

$file =~ s/.*\///;

print "Content-Disposition: attachment; filename=\"$file\"\n";

print "Content-Length: $size\n\n";

binmode (F);

while (read(F, my $buffer, 10485760)) {

print $buffer;

}

close F;

Как это можно использовать в моем случае? Авторизация пользователей на моем сайте есть. Данные авторизованных посетителей в текстовом файле построчно: имя; логин; пароль; имя каталога файлов пользователя;

Сейчас скачка файлов происходит так:

Клиент вводит свой логин и пароль и попадает на страницу со ссылкой <a href=http://адрес сайта/каталог файлов пользователя>Скачать файлы</a>. При следующем заходе ему уже не нужно авторизоваться. Он просто в адресной строке указывает http://адрес сайта/каталог файлов пользователя и снова имеет доступ к своему каталогу.

Как это изменить? И что бы он не попадал в каталог, а мог скачивать файлы со своей страницы

K
На сайте с 12.07.2006
Offline
295
Kpd
#8
Как это можно использовать в моем случае?

Создавать временную ссылку на файл, в который добавлять уникальный идентификатор сессии (чтобы никто не мог использовать ссылку второй раз), при обработке проверять этот идентификатор, если он нормальный, то отдавать файл предложенным способом. Работать будет, но с очень большой нагрузкой на процессор, особенно при больших файлах.

L
На сайте с 02.12.2006
Offline
28
Lys
#9

Как спрятать папку с файлами, положим, понятно...

Но как на персональную страницу пользователя попадут ссылки на файлы? Похоже, там придется менять структуру базы данных.

NS
На сайте с 02.06.2007
Offline
0
#10
Kpd:
Создавать временную ссылку на файл, в который добавлять уникальный идентификатор сессии (чтобы никто не мог использовать ссылку второй раз), при обработке проверять этот идентификатор, если он нормальный, то отдавать файл предложенным способом. Работать будет, но с очень большой нагрузкой на процессор, особенно при больших файлах.

Спасибо! Понятно! Теперь, не могли бы Вы, если Вас не затруднит и не будете ли Вы столь любезны извинить меня за дикую наглость и перевести то что Вы только что написали на язык Perl? ;)

p.s. о нагрузке на процессор можете не думать файлы легкие

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий