Forum Webscript.Ru
Дизайн и Верстка => Всё о Html => Тема начата: alex007 от 10 Августа 2002, 15:16:28
-
У меня есть брошюрки, которые в формате .pdf (Acrobat) и .doc (MS Word), ссылки на эти файлы выглядят в HTML так:
брошюра
и
брошюра
Как мы знаем, что у большенства, после клика на такие ссылки просто откроется Acrobat Reader и MS Word.
Теперь мой вопрос: возможно ли как нибудь прописать так, чтобы у всех в браузерах эти ссылки предложили скачать их.
Жду ответов.
С уважением,
Алекс
-
Из html вряд ли можно такое прописать, а вот в настройках сервера можно сделать, чтобы для этих расширений выставлялся какой-нибудь не стандартный Content-type. Или скрипт может делать то же самое.
-
Или скрипт может делать то же самое.
Примерчик скрипта не мог ли кинуть.
-
А о различиях в методах Post и Get знаешь?
-
А о различиях в методах Post и Get знаешь?
Конечно, знаю.
Get - используют для передачи параметров скрипту из строки location браузера.
Минусы этого метода:
1. Все параметры видны в строке. Если в кач-ве параметров передается пароль- получается дырка в безопасности
2. Длина данных, передаваемых таким методом, ограничена.
3. Hельзя передавать multipart form data, в т.ч. файлы через кнопочку "Browse".
Post - используют для передачи данных скрипту через STDIN.
Отсутствуют минусы метода GET.
Обычно метод GET используется, когда скрипт вызывается со страницы через линк, а POST - при нажатии кнопки submit в форме.
Ну и как мне это может помочь.
-
Конечно, знаю.
Гы... Сори, я не в тот тред писал :) Промахнулся...
Хотя мог бы еще и о длинне передоваемых данных сказать... ;)
А по сабжу:
берем и пишем вручную заголовки: Content-Type: application/x-zip-compressed; name=file.zip Content- Disposition: attachment; filename=file.zip . Это для zip, но для других тоже подойдет.
Посмотри также вот эту статью: http://php.spb.ru/php/image.html
-
А вот еще тред для размышлений: http://ftp.ics.uci.edu/pub/ietf/http/hypermail/1996q4/0059.html
-
NeoNox
Незачто,
Класную статейку кинул, то что надо.
Спасибо.
Алекс
-
Попробывал следующее:
header("Content-type: application/xxxxxxx");
readfile("organisation registration form.pdf");
?>
Почему-то дает скачать только php скрипт файл?!?
-
header("Content-Disposition: attachment; form.pdf\\r\\n");
header("Content-Type: application/octet-stream\\r\\n");
header("Content-Type: application/force-download\\r\\n");
header("Content-Type: application/download\\r\\n");
header("Content-Transfer-Encoding: binary\\r\\n");
readfile("organisation registration form.pdf");
?>
-
Дмитрий Попов
Спасибо за код, попробую и скажу работает или нет.
-
Скрипт все равно выдает только php скрипт скачать.
-
Скрипт все равно выдает только php скрипт скачать.
Помоему вск выше сказаное не работает в некоторых версиях IE. Типа бага.
-
Типа бага.
Да не может быть что бы на двух компах с IE6.
-
alex007
OBOLTUS
Вы какой скрипт обсуждаете?
Если принцип, то изменение заголовков помогает. Я вот написал скрипт на Перл - работает, без багов, проверено уже на 10-ти компах, с разными версиями Ослика и Форточек. Если кому надо, могу код сюда написать, хотя по-моему это очевидно...
-
Скрипт все равно выдает только php скрипт скачать.
Если у тебя apache НЕ под windows или PHP как модуль то делай
href="script.php/real_file_name.pdf"
А zip-ить файлы желательно, потому как 1) забота о пользователе
2) IE вумный на столько , что плюет на тип файлв и открывает его для просмотра в любом случае (если узнает конечно :)
-
забота о пользователе
Вот тут ты глобально не прав. Это на сайтах типа вебскрипта обязательно всё архивировать а то узнаешь о себе много нового:-).
Так вот я тоже этой фигнёй занимался позавчера. Мне шеф сказал что нужны файлы для скачивания, причём в формате doc. У нашего сайта посетители такие, что опция "сохранить как..." находится свыше их понимания, а архиваторов на компьютерах нет, и как пользоваться ими они не знают. Я сначала не верил, что такое возможно, но после того как пообщался... с людьми из регионов... был в шоке...
А ситуация была такая:
Значит я как сисадмин (вернее помощник, главный сисадмин в отпуске:-). готовил комплект из двух компьютеров для отправки в регионы (сам компьютер+ модем+ сетевухи+ мыши+ сетевые фильтры+ПО). На мой вопрос "что из программ нужно, за исключением типового набора?" Мне был дан убийственный ответ "Всё что можете установить". Я конечно пытался объяснить что у нас только на локальном серваке гигов 30 под разного рода ПО в заархивированном виде+ куча дисков, и если надо могём установить любую программу, которую реально скачать в инете или найти в магазине... Меня не поняли... Это уже клиника...
Так что какие там архиваторы? :-)
плюет на тип файлв и открывает его для просмотра в любом случае
ага, но только тогда, когда на предложение сохранить файл, всё равно жмёшь на открыть.
___________________
глебушка я!
-
glebushka
Если не трудно кинь скрипт на мыло
-
Unregistered
Абсолютно прав, прежде всего надо заботиться о пользователях сайта, вот поэтому мне и надо скрипт прописать что бы такие файлы как .doc и .pdf мог любой пользователь скачать, просто кликнув на ссылку.
-
alex007, последний унрегистред - мой:-)
Если не трудно кинь скрипт на мыло
адресочек по-точнее:-)?
Ну да ладно, если тут никто не будет вредничать, то вот мой кривой код:
#!/usr/bin/perl -w
#download.cgi
use strict;
use CGI qw (:standart);
my $Objekt=new CGI;
my $File = $Objekt->param("file");
my $Path= $Objekt->param("path");
if($Path eq "obrazovanie"){
$Path="../www/obrazovanie";
}elsif($Path eq "konferenc"){
$Path="../www/konferenc";
}else{exit;}
print "Content-type: application/WindowsMustDie; name=$File\\n";
my @temp=split(/\\//, $File);
my $t=$#temp;
my $name=$temp[$t];
print "Content-Disposition: attachment; filename=$name\\n\\n";
open(FILE, "< $Path/$File") or die "Ошибка не удаётся открыть файл $File: $!";
print ;
close(FILE);
exit;
Пример вызова скрипта:
download.cgi?file=chtoto.doc&path=obrazovanie
Разберёшься?
-
glebushka
Спасибо за скрипт
-
#!/usr/bin/perl -w
#download.cgi
use strict;
use CGI qw (:standart);
my $Objekt=new CGI;
my $File = $Objekt->param("file");
my $Path= $Objekt->param("path");
if($Path eq "obrazovanie"){
$Path="../www/obrazovanie";
}elsif($Path eq "konferenc"){
$Path="../www/konferenc";
}else{exit;}
print "Content-type: application/WindowsMustDie; name=$File\\n";
my @temp=split(/\\//, $File);
my $t=$#temp;
my $name=$temp[$t];
print "Content-Disposition: attachment; filename=$name\\n\\n";
open(FILE, "< $Path/$File") or die "Ошибка не удаётся открыть файл $File: $!";
print ;
close(FILE);
exit;
Пример вызова скрипта:
download.cgi?file=chtoto.doc&path=obrazovanie
Разберёшься?
glebushka
Мне этот скрипт выдал:
1) Premature end of script headers
2) Он взял и открыл файл в браузере вот что получилось из .doc файла(это только небольшой пример):
РПаЎ±б>юя vxюяяяuяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяяямҐБ7 шї#&bjbjUU 5F7|7|Д^яяяяяяlhhhhhhh|8N4‚D|>¬Т: (444D=F=F=F=F=F=F=$Е? еApj=ihj=7hh44ЫУ=777^h4h4D=7D=7€7ї#ю¤:ёhhР<4Ж ЂEK»"4В|љmЋ\\;и<\\й=0>t;\\UBы<UBР<7||hhhh
-
Unregistered
Уговорил :)
alex007
Цитировать скрипт не обязательно, тут не настолько глупые люди, чтобы не понять о каком скрипте речь идет ;-)
Content-type: application/WindowsMustDie
;) Оригинально
И не смотря на это оно показало его как plain/text!
Именно об этом речь (о "вумности") - оно не предлагает сохранить
-
Цитировать скрипт не обязательно, тут не настолько глупые люди, чтобы не понять о каком скрипте речь идет ;-)
Извини если обидился, ни кто и не считает "что тут не настолько глупые люди", просто я привел пример скрипта, а как все мы видем что в этой теме то не один то скрипт!!!!
-
Так что другии идеи есть???