Этот вариант на данный момент у меня работает, но в этом случае клиент все равно знает откуда качает файл, а мне нужно чтобы при скачивании ссылка на файл не соответствовала реальному адресу где лежат файлы.
Каталоги создаются вручную. Файлы закачиваются вручную. Файлы разные, для каждого клиента свои. Количество клиентов 500 и для каждого уже созданы каталоги. Файлов в каждом каталоге предполагается около 30-ти.
Немного не так.
Есть клиенты. Для каждого из них созданы каталоги с именами соответствующими ID клиентов. В эти каталоги периодически добавляются файлы. Сейчас на моем сайте клиент заходит на свою страницу и видит ссылку на свой и только свой каталог. пройдя по этой ссылке он видит предназначенные для него файлы. В следующий раз он может уже на заходя на свою страницу просто в адресной строке браузера набрать адрес по которому он ходил в прошлый раз и снова без проблем попадает в свой каталог.
А хотелось бы что бы при заходе на свою страницу он видел ссылки на свои файлы каталоге а если в этом каталоге файлов на данный момент нет то он ничего не видит (чистая страница). При скачивании файла он не должен видеть откуда этот файл качается. Вот и все :)
Спасибо! Понятно! Теперь, не могли бы Вы, если Вас не затруднит и не будете ли Вы столь любезны извинить меня за дикую наглость и перевести то что Вы только что написали на язык Perl? ;)
p.s. о нагрузке на процессор можете не думать файлы легкие
Да на том же сервере и папку нельзя засвечивать.
На одном из форумов был поднят схожий вопрос: "Как можно авторизированному юзеру выдавать линку на скачку файла, так что бы не светилось реальное раположение файла на сервере.
Задача в том что бы скачать файл можно было только авторизированным пользователям, но даже авторициронный пользователь не должен видеть реальное расположение файлов на сервере. Как это можно реализовать? как делать авторицазию рассказывать не надо "
И ему предложены варианты:
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;
while(read(FILE, my $data, 1024)){print $data}
close FILE;
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://адрес сайта/каталог файлов пользователя и снова имеет доступ к своему каталогу.
Как это изменить? И что бы он не попадал в каталог, а мог скачивать файлы со своей страницы
Ты готов помочь?
Сколько стоит изготовить такой скрипт? Срок?
Очень лаконично:) ... но ничего не понятно😕