button download

22 отговора 694 прегледа
#1

button download

Как да направя бутон или хиперллинк към фаил които по принцип може да се отваря от браузър (например текстов фаил или картинка), но да не се отвори ами направо да тръгва да се
Download-ва ?????


моля помогнете ми

Отговор
в отговор на Kolev #2

Re: button download

Ми като от сървъра пуснеш: Content-Type: application/bin-hex. Може да стане например с PHP...

<?php
header("Content-Type: application/bin-hex");
?>

Има и вариант, при който се прави настройка на сървъра за съответното файлово разширение какъв content type да връща!

И в двата случая, ако сайта ти е на hit.bg или някой безплатен хост, няма да можеш да го направиш!

БАба


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #3

Re: button download

<?php

$file = "file.txt";

header( "Content-type: image/jpeg" );
header( "Content-Disposition: attachment; filename=" . $file );
header( "Pragma: no-cache" );
header( "Cache-Control: no-store, no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-check=0", false );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" );

readfile( $file );

?>

Отговор
в отговор на JohnT #4

Ъмм...

убуу е да има и filesize, шото нема да се вижда големината на файла от нищо...

There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Отговор
в отговор на JohnT #5

Re: button download

хмммммммммм

$file = "file.txt";

header( "Content-type: image/jpeg" );

Що ли си мисля че IE-то ще се направи на умно и ще го отвори ...

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на Koтapakът нa Шpьoдинrep #6

Re: Ъмм...

Да пропуснеш да дадеш размера на файла също може да бъде хитра тактика. Може и да не се направи случайно, защото по този начин download managers не могат да направят resume и тегленето може да става само по един канал!

Както казва лисицата от рекламата на прах за пране: "Хитро а?";

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #7

Вярно е,

но аз лично предпочитам да дам възможност за резюм... Защото все още не навсякъде са на кейбъл

There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Отговор
в отговор на Koтapakът нa Шpьoдинrep #8

Re: И това е вярно!

Нещото, което най-мразя е да ми се разпадне връзката (щото не е задължително като си на кабел да не прекъсва!) когато остава 1% и да няма възможност за resume! Има администратори, дето са обрали бая псувня по тоя повод!

БАба...


Ама баба не е жена, вие не знаете ли?
Отговор
в отговор на БaбaИлиицa #9

Re: И това е вярно!

Човека може да си няма представа от РНР.. Аз му предлагам нещо много по лесно, което да работи и на хостове от рода на хит.бг, щом не иска да се отваря файла защо не го натика в някой архив? .zip или .rar каквото там си избере.. Този начин на доста места се ползва, все търсим трудни рещения...

Отговор
в отговор на Бopиcлaв #10

Re: И това е вярно!

ами ако са много файловете? и ако се правят често промени по тях ?
Според мен твоя начин е по-трудния.

Отговор
в отговор на ro6avia #12

Re: button download

file.txt e samo za primer
a jpega go zameniash s binary i si v jaza
az go polzvam za jpeg i si pomislih che ako choveka razbere za kakvo ide rech sha se oseti da si go opravi na kakvoto mu trebva v sluchaia

Отговор
в отговор на ro6avia #13

Re: button download

i ne.. IE- ne se pravi hitro da go otvaria :)

shoto se pak mu go podavam kato attachment a ne kato content

razsujdavajte malko

Отговор
в отговор на БaбaИлиицa #14

Re: И това е вярно!

А не сте ли се замисляли над ХТТП протокола и че РНР-то не е уеб сървър и по никакъв начин няма да разбере
Range: bytes=18378-

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #15

Re: И това е вярно!

да го преработи да чете всякакви хедъри ;))

Отговор
в отговор на Stipe #16

Re: И това е вярно!

да прав си... Зависи от условията... ми затова предлагаме кой каквото се сети, след като не знаем всичките условия

Отговор
в отговор на Бopиcлaв #17

Re: И това е вярно!

Съгласен


Отговор
в отговор на JohnT #18

Re: button download

маи не сам обеснил добре

проблема по точно е...
правя заявка към mysql , връща ми резултата и аз го записвам във .txt фаил...
и правя един линк към този файл но не искам да го отвара в браузъра а да тръгва да го даоунлоадва

а това със content-type нещо не го схванах как става оща на линка към mysql заявката тръгва да ми download-ва php - то което обработва заявката и я пише във файл (content type .... както ти ми го написа е във това php)

дано е станало по ясно... :)

и сега ако можете по насочено да ми помогнете....

Отговор
в отговор на JohnT #19

Re: button download

Аве да попитам нали и във хтмл има Content-Type.... ж meta тага ... но мога ли и с него да го постигна тва....

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

само какво трябва да напиша там

Отговор
в отговор на Kolev #20

Re: button download

Не си играй с мета таговете а направи така :
<?php
$link = mysq_connect();
select нещо си там ....
форматираш аутпута
header("Content-disposition: filename=databse_backup.txt");
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();
?>
Като естесвено в $DATA трябва да имаш това което изпращаш :-)))))))

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор