Header "Content-Disposition" не выводит окно Save Asссссс!!

narenek

Новичок
Header "Content-Disposition" не выводит окно Save Asссссс!!

Суть проблемы токова:

Есть файл на серваке. Есть желание при загрузки страницы выдовать окно по сохранени. этого файла. Что-то типа "ссылку не дам, а файл бери". Во сам код всей страницы:

<?php
$my_file = "../pics/bot.jpg";
$fsize=10000;

$fname = basename ($my_file);

header("Content-Type: x-application/octet-stream");
header('Content-Disposition: inline; filename="'.$fname.'"');

$fd = fopen("$my_file", "r");
while (!feof ($fd)) {
$buffer = fgets($fd, $fsize);
echo $buffer;
}
fclose ($fd);
?>

А вот и сама проблема!!

Сам-то файл в окне ИЕ выводится, но вот окно "Сохранить как..." ФиГУЛИ!!
В чем я не прав?? Ведь везде в форумах написанно именно так!! Но почему-то все равно нет результата....

ПОМОГИ ПЛЗ, разобраться...
 

GemVit

Новичок
Content-Disposition: attachment;

-~{}~ 29.09.06 15:23:

а вообще
header
чем там указанный пример не подходит?
 

narenek

Новичок
Да вот и нееееааа!! attachment Тоже не срабатывает!!



__________________
АААА блин все заработало!! Само собой. Я вообще ничего не делал. Вот только закрыл и открыл окно занова!!
 

narenek

Новичок
Автор оригинала: Curly-fingers
narenek
И что всем придётся на твоем сайте

делать?
?? В смысле??

Просто хочу организовать платную площадку по файлам и подыскиваю лучшие варианты. А пользователи будут (если вообще будут) покупать файлы (за webmoney). Но пока что я в самом начале пути...

Если я конечно правильно понял твой вопрос.
 

nerezus

Вселенский отказник
Отдавать файлы скриптом — не лучший вариант. Я бы как-нибудь через симлинки сделал бы )
 

narenek

Новичок
Автор оригинала: nerezus
Отдавать файлы скриптом — не лучший вариант. Я бы как-нибудь через симлинки сделал бы )
А это как??

Может я и знаю данный вариант, только в термене заблудился!! :))
 

nerezus

Вселенский отказник
ну через ссылки. Скриптом же вести контроль этих ссылок, а директивами апача - доступ по IP
 

narenek

Новичок
Автор оригинала: nerezus
ну через ссылки. Скриптом же вести контроль этих ссылок, а директивами апача - доступ по IP
НУУУУ, через ссылки, это получается надо файл постоянно иметь по определенному адресу. Или копировать файл в определенное место, а потом его от туда удолять!! Это понят. И с этим проблем-то нет. Но вот как быть, если юзер качал качал, а потом "бах" и вылетел. Он же заплатил за файл!! А если у него момед?? Тут и ip не подходит. Так что слежение за скачиванием "по моему" нужно обязательно. А по этому и о скрипте надо думать. Вот если бы была возможность, получать от юзера метку, что мол файл скачен!! Но такого нет. Следовательно надо отдавать по кускам (по малым кускам) и если что, предоставить ему возможность доскачать. И при все этом, возможность надо предоставить только ему. Но это уже будет решаться через куки...

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

RJ

Новичок
У меня похожий трабл.
Есть FTP сервер, на котором хранятся фильмы. Мне нужно, чтобы скрипт начинал закачку файла, перед этим спросив, куда его сохранять. А он в тупую начинает качать в Temporary Internet Files а потом открывать внешней прогой.
Я делаю так:
$path="ftp://$FTP_ADDR/$FILMS_DIR/Serial/$serial_name/$file";
Header("Location: ".$path);
 

narenek

Новичок
Я лично делаю вот так:

$tmp_file=fopen($my_file,'r');
if (!$tmp_file) exit ('Can not open file: '.$my_file);

// где $my_file - путь к файлу


header("Content-Type: x-application/octet-stream");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=$filename");

//где $filename - имя файла, при этом выходит окно сохранения с этим именем, потом...

while (!feof($tmp_file))
{
fread($tmp_file, FILE_PART_SIZE);
flush();
}

// где $tmp_file - открытый нами файл, а FILE_PART_SIZE - куски по которым мы отдаем



Это конечно не полный пример, а всего лишь важный кусок.

А с моей проблемой был чепок в том, что я пытался повтарить операцию нажатием F5, а это не срабатывает, требуется новое открытие окна.
 

RJ

Новичок
Но у меня вайл на FTP сервере, а не в соседней папке. Что делать?
 

narenek

Новичок
А какая разница??

FTP у тебя находится там же где и сервак??

Если да, то все равно же путь остается физическим!! А путь ты как раз и прописываешь, как в любом языке!!
 

narenek

Новичок
АААА...
Тогда думаю сложности будут.
Как же ты будешь брать файл со стороны.
Думаю единственное что возможно это все таки прямая ссылка на файл.

Это пока все что приходит на ум (с утра по раньше.)
 

RJ

Новичок
Опа!!! Всем спасибо - проблема решена.
Просто я поменял расширение файла с .vob на .avi и оно начало открывать его напрямую (неизвестно почему).
Поставил расширение как было (.vob) - Все заработало как положено - IE начал спрашивать. Мистика...
 

narenek

Новичок
Видемо проблема в регистрации типов файлов. У меня была подобная проблема с файлами *.obj

Они открывались как текст и все тут. Так что скорее всего проблемма именно в том, что бы указывать в начали какой именно файл ты открываешь. И тогда он будет открываться как надо. Но это только мысль. Надо проверять
 
Сверху