force download
16 отговора
661 прегледа
force download
prez edin window.open podavam edin pdf s
header("Content-Type: Application/force-download");
header("Location: file.pdf");
no za syjalenie v zavisimost ot conf-a na user-a toi se downloadva ili se pokazva v djameka. Kak da go nakram da se download-va pri potrebitelia nezavisimo dali toi ima adobe acrobat, kak mu e konfiguriran i t.n...?
probvah i s header("Content-Disposition: attachment; filename=file.pdf"); no bez rezultata, na niakoi im se pokazva direktno v malkia djameka.
header("Content-Type: Application/force-download");
header("Location: file.pdf");
no za syjalenie v zavisimost ot conf-a na user-a toi se downloadva ili se pokazva v djameka. Kak da go nakram da se download-va pri potrebitelia nezavisimo dali toi ima adobe acrobat, kak mu e konfiguriran i t.n...?
probvah i s header("Content-Disposition: attachment; filename=file.pdf"); no bez rezultata, na niakoi im se pokazva direktno v malkia djameka.
Re: force download
миме тайп апликейщън бин-хекс :-))))
header("Content-type: application/bin-hex");
E tuk ni6to niama :[линк]
header("Content-type: application/bin-hex");
E tuk ni6to niama :[линк]
Re: force download
Най сигурно: header("Content-type: application/octet-stream");
Everything louder than everything else...
Everything louder than everything else...
няма 100% решение
принципно трябва да ти върши работа само [линк], но ако го ползваш в пълния вариант
принципно, трябва да ти върши работа само header("Content-type: application/octet-stream");, ама не за всички видове и версии браузери
да, ама не - различните видове браузери се държат по различен начин и имат различни бъгове, т.е. или си намери нещо, което работи (примерно виж в някоя CMS как го правят) или си напиши нещо самичък, което взима под внимание всички случаи
примерно
header("Content-type: application/force-download");
или
header("Content-type: application/octet-stream");
ако HTTP_USER_AGENT е MSIE
....
header("Content-Disposition: filename=$файл" . "%20");
....
иначе
....
header("Content-Disposition: attachment; filename=$файл");
....
енд
виж всички възможни преебавки, които могат да ти се случат, т.е. %20 е заради IE-то, но пък трябва да вземеш в предвид и session limiter-a, ако имаш и ползваш такъв и т.н. и т.н.
виж всички коментари на страницата в PHP документацията за header, там най-вероятно ще откриеш ценни идеи и работещата идея
успех!
принципно, трябва да ти върши работа само header("Content-type: application/octet-stream");, ама не за всички видове и версии браузери
да, ама не - различните видове браузери се държат по различен начин и имат различни бъгове, т.е. или си намери нещо, което работи (примерно виж в някоя CMS как го правят) или си напиши нещо самичък, което взима под внимание всички случаи
примерно
header("Content-type: application/force-download");
или
header("Content-type: application/octet-stream");
ако HTTP_USER_AGENT е MSIE
....
header("Content-Disposition: filename=$файл" . "%20");
....
иначе
....
header("Content-Disposition: attachment; filename=$файл");
....
енд
виж всички възможни преебавки, които могат да ти се случат, т.е. %20 е заради IE-то, но пък трябва да вземеш в предвид и session limiter-a, ако имаш и ползваш такъв и т.н. и т.н.
виж всички коментари на страницата в PHP документацията за header, там най-вероятно ще откриеш ценни идеи и работещата идея
успех!
Re: force download
Иво, я пробвай това:
header("Content-Disposition: attachment; filename=".$filename."\n");
header("Content-Transfer-Encoding: binary\n");
header("Content-Disposition: attachment; filename=".$filename."\n");
header("Content-Transfer-Encoding: binary\n");
izprobvano
пробвано е:
header("Content-Type: application/force-download");
header("Content-Type: application/x-msdownload");
header("Content-Type: Application/bin-hex");
header("Content-Type: Application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("MimeType: Application/octet-stream");
header("Content-Disposition: attachment; filename=file.pdf");
$fh = fopen("file.pdf", "r");
header("Location: $fh");
i niama opravia
header("Content-Type: application/force-download");
header("Content-Type: application/x-msdownload");
header("Content-Type: Application/bin-hex");
header("Content-Type: Application/octet-stream");
header("Content-Transfer-Encoding: binary");
header("MimeType: Application/octet-stream");
header("Content-Disposition: attachment; filename=file.pdf");
$fh = fopen("file.pdf", "r");
header("Location: $fh");
i niama opravia
Re: force download
чрез ftp_get със сигурност ще се получи, но това го пробвай в краен варянт 
Break The UnBreakable
Break The UnBreakable
Re: izprobvano
application/force-download
application/x-msdownload
application/bin-hex
такива MIME просто няма.
А и никой нормален броузър не би свалил и записал файл без знанието на потребителя. Нема начин. ;))
(не говорим за images JS swf..)
application/x-msdownload
application/bin-hex
такива MIME просто няма.
А и никой нормален броузър не би свалил и записал файл без знанието на потребителя. Нема начин. ;))
(не говорим за images JS swf..)
Re: izprobvano
neee, az iskam da pita, niama problem. daje tochno tova iskam. da pita kyde iskash da ia save as...a ne da ia otvaria direktno...
Re: izprobvano
Аха, моя грешка тогава.
Ами манипулирането на файлове е работа на потребителя, така че няма начин.
А и pdf е доста употребяван формат, което предполага, че потребителя вече е направил съответноте настройки, за това как браузъра да борави с такъв тип фаилове.
Ами манипулирането на файлове е работа на потребителя, така че няма начин.
А и pdf е доста употребяван формат, което предполага, че потребителя вече е направил съответноте настройки, за това как браузъра да борави с такъв тип фаилове.
Re: force download
еех, ама що не се разтърси из нещата дето ти казахме ...
тва го извадих от phpBB-то, чийто даунлоад работи 100%, където и да съм го пробвал:
@ob_end_clean();
@ini_set('zlib.output_compression', 'Off');
header('Pragma: public');
header('Content-Transfer-Encoding: none');
header('Content-Type: ' . $attachment['mimetype'] . '; name="' . $attachment['real_filename'] . '"');
/тук $attachment['mimetype'] е application/octetstream за IE & Opera и application/octet-stream за останалите/
header('Content-Disposition: inline; filename="' . $attachment['real_filename'] . '"');
/тук можеш Inline-а да го смениш с attachment или каквото там пише в RFC-то/
$size = @filesize($filename);
if ($size)
{
header("Content-length: $size");
}
readfile($filename);
тва го извадих от phpBB-то, чийто даунлоад работи 100%, където и да съм го пробвал:
@ob_end_clean();
@ini_set('zlib.output_compression', 'Off');
header('Pragma: public');
header('Content-Transfer-Encoding: none');
header('Content-Type: ' . $attachment['mimetype'] . '; name="' . $attachment['real_filename'] . '"');
/тук $attachment['mimetype'] е application/octetstream за IE & Opera и application/octet-stream за останалите/
header('Content-Disposition: inline; filename="' . $attachment['real_filename'] . '"');
/тук можеш Inline-а да го смениш с attachment или каквото там пише в RFC-то/
$size = @filesize($filename);
if ($size)
{
header("Content-length: $size");
}
readfile($filename);
Re: force download
Аз го правя така и ми работи :
header("Content-disposition: filename=".$name);
header("Content-type: application/bin-hex");
header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
echo $DATA ;
die();
E tuk ni6to niama :[линк]
header("Content-disposition: filename=".$name);
header("Content-type: application/bin-hex");
header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
echo $DATA ;
die();
E tuk ni6to niama :[линк]
Re: force download
А случайно да си пробвал дали това работи на IE за Mac? Специално за IE ми трябва, щото на Mozilla всичко е ок. Проблем е, че при IE името на файла в кутията за Save As не е това, което му указваш с filename=".$filename ами си остава download.php или както си го кръстил там. Интересно ми е някой успял ли е да излъже IE за Mac.
Always Outnumbered - Never Outgunned
Always Outnumbered - Never Outgunned
Re: force download
пробва ли винаги да слагаш съответния
header("Content-type: application/application_type");
header("Content-type: application/application_type");
Re: force download
Да, пробвах и не става. С IE под Windows няма проблеми, но на Mac не ще да работи. Изписва download.php и записва файла с това име. Самият файл си е наред, само дето не е с нужното име. Абе тия макове само проблеми създават, то само това да беше...
Always Outnumbered - Never Outgunned
Always Outnumbered - Never Outgunned
Re: force download
хм, а що не пробваш тогава да се изхитриш, примерно:
[линк]<file.ext>?file=<file.ext или ако ид, ако трябва да е нещо друго> или нещо от рода (целта е ие-то да подмине download.php и да захапе файл.разширение, а пък ти URI-то след него ще си го парснеш от download.php файла)
[линк]<file.ext>?file=<file.ext или ако ид, ако трябва да е нещо друго> или нещо от рода (целта е ие-то да подмине download.php и да захапе файл.разширение, а пък ти URI-то след него ще си го парснеш от download.php файла)