2009-10-02 21 views
6

Bir kullanıcı "PDF indir" bağlantısını tıkladığında, indirme komutunun görünmesini ve dosyanın dosyayı indirebilmesini isterim.Dosya indirmeyi tetikleyen bir bağlantı nasıl oluşturulur?

Şu anda, kullanıcı sadece PDF dosyasının adresine aktarılmıştır. Örneğin

:

<a..[what goes here??]..>Download PDF</a> 

Bunu yapmak için gereken JavaScript & PHP bir arada var gibi görünüyor.

Bir örnek verebilir mi?

cevap

6

Apache üzerinde iseniz, sizin .htaccess içine bu bırakabilirsiniz:

<Files *.pdf> 
    Header set Content-Disposition attachment 
</Files> 

Bu indirme gibi tüm PDF belgeleri gönderir.Ancak mod_headers etkinleştirilmiş olmalıdır.

+0

Sadece aradığım şey bu, teşekkürler! – edt

+0

Rica ederim. :) – middus

+0

Ayrıca bir 'download' özelliği de var. (Hangi tarayıcıların bunu desteklediğinden emin değilsiniz, ancak yine de ekleyebilirsiniz.) – Darkwater

0

O

Şu anda, kullanıcı sadece PDF dosyasının adrese aktarılır kastın ne olduğu belli değil. seçimi veya açıklığı indirirken

<a href='http://example.com/download.pdf'>Download PDF</a> 

bir dosya tarayıcısının bir ayar daha fazlasıdır:

Ama basit bir yaklaşım göstermektedir.

Sen web sunucusu yanıt için bir HTTP üst ekleyerek bağlantılı içeriği kaydetmek için tarayıcı zorlayabilir
1

:

Content-Disposition: attachment; filename=<default filename to save as> 

Diğer taraftan, gerçekten kullanıcının tarayıcısının geçersiz noktası görmüyorum genellikle PDF belgelerinin tarayıcıda açılıp açılmayacağını, ayrı bir PDF görüntüleyicide açılıp diske kaydedileceğini söyleyen yapılandırma.

+0

Genel olarak, kullanıcının tercihinin onurlandırılması gerektiği konusunda hemfikir olmakla birlikte, tarayıcıda görüntülemek yerine dosyayı indirmeye teşvik edilmeleri gereken en az bir vaka düşünebilirim: Muhtemelen ihtiyaç duydukları durumlar Çevrimiçi sigorta poliçeleri veya benzerleri gibi bir kopyasını kaydedin. –

0

senin sorunundan, vanilya HTML büyülü JavaScript/PHP çözüm yoktur inanmıyorum:

<a href="docco.pdf" title="this is a link to a pdf">download the PDF</a> 

o kaynak talep tarayıcı yönlendirecektir, nelerin gerekli olduğunu yapacağız "docco. pdf ", bununla bir şeyler yapmak için tarayıcıya (ve herhangi bir eklentiye) kalmış.

Örneğin, kullanıcıya pop-up ile ne yapacağını seçenek sunar bir firefox eklenti "PDF download" var.

<?php 
header('Content-disposition: attachment; filename=movie.mpg'); 
header('Content-type: video/mpeg'); 
readfile('movie.mpg'); 
?> 

sizin <a href kod belirli bir sayfaya işaret etmek gerekir ve readfile senin kaynak çağrı

Further reading

Hemen olacaktır:

7

Yönlendirme Bu kodu ile bir PHP sayfasına Bir yan not olarak, bir tarayıcı ayarlarını geçersiz kılmamalısınız, ancak bazen patron isterse, sadece yapmanız gerekir.

1

Etiketinize HTML5 download özniteliğini kullanabilirsiniz.

<a href="http://love4cats.com/kitten-catalogue.pdf" download>Download the CATalogue</a> 

Analitiğinizi kontrol etmeli ve hedef tarayıcınızın özelliği desteklediğinden emin olmalısınız. Tarayıcı desteği için caniuse.com entry sayfasına bakın.

2
You can also use the following code: 

<?php 
$file = filter_input(INPUT_GET, 'file'); 
$filename = basename($file); 
header("Content-Type: application/force-download"); 
header("Content-Disposition: attachment; filename=\"{$filename}\";"); 
readfile("your file path {$file}"); 
?> 

Bu gibi herhangi bir dosya uzantılarını isteyecektir (.pdf, .docx, .zip, .csv, .txt, .html, .php vb ...) doğrudan yeni tarayıcıya açmadan .

İlgili konular