Cum să adaugi un link pentru descărcarea unui PDF

15 dec. 2010, 19:15:16
Vizualizări: 17.2K
Voturi: 6

Cum pot adăuga un link către un PDF în conținut, astfel încât acesta să se descarce în loc să se deschidă în fereastra browserului? (Am încărcat PDF-ul în biblioteca media și pot insera link-ul, dar nu găsesc o opțiune pentru a împiedica deschiderea în browser).

Mulțumesc,

Lucy

0
Toate răspunsurile la întrebare 4
3
10

poți încerca să adaugi acest cod în fișierul tău .htaccess :

<FilesMatch "\.(?i:pdf)$">
    # Forțează Descărcarea Fișierului
    ForceType application/octet-stream
    Header set Content-Disposition attachment
</FilesMatch>
15 dec. 2010 22:56:24
Comentarii

asta este minunat și mult mai rapid decât toate celelalte opțiuni. Cum pot folosi mai multe tipuri de fișiere? De exemplu, test.notebook cu partea (?i:pdf)?

v3nt v3nt
23 aug. 2011 13:35:28

se pare că poți face asta (?i:(pdf|notebook))

Sébastien Méric Sébastien Méric
29 aug. 2011 02:04:18

da - am aflat până la urmă! Mulțumesc Sébastien...

v3nt v3nt
29 aug. 2011 16:04:10
3

Un fișier PDF va fi salvat cu tipul MIME application/pdf, așadar dacă tema ta are un fișier șablon application.php sau pdf.php care forțează descărcarea (sau dacă verifici tipul MIME în șablonul attachment.php), poți forța descărcarea.

Un fișier pdf.php construit astfel în tema ta ar trebui să funcționeze:

<?php  if (have_posts()) : while (have_posts()) : the_post();

$pdf_title = $post->post_title;
$uploads_dir = wp_upload_dir();
$attachment_src = get_post_meta( $post->ID, '_wp_attached_file', true );
$pdf_src = path_join( $uploads_dir['path'], $attachment_src );


 header("Pragma: public"); // required
 header("Expires: 0");
 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
 header("Cache-Control: private",false); // required for certain browsers 
 header("Content-Type: application/pdf");
 header("Content-Disposition: attachment; filename=\"".$pdf_title."\";" );
 header("Content-Transfer-Encoding: binary");
 header("Content-Length: ".filesize($pdf_src));
 ob_clean();
 flush();
 readfile("$pdf_src");


endwhile; endif;

?>

(Notă: Pentru ca acest lucru să funcționeze, când introduci fișierul în articol prin încărcătorul media, trebuie să selectezi URL Post în loc de URL Fișier în câmpul Link URL înainte de inserare. Un link către numele fișierului va urma preferințele browserului, dar prin link-ul către postarea WP, poți controla comportamentul acestuia.)

16 dec. 2010 20:36:52
Comentarii

Nu ar trebui să folosești niciodată guid-ul postării ca URL. Este un URL doar pentru că este un șir unic; ar putea la fel de ușor să se schimbe.

John P Bloch John P Bloch
17 dec. 2010 23:47:24

Mulțumesc, am modificat funcția mea pentru a folosi metadatele '_wp_attached_file'.

goldenapples goldenapples
18 dec. 2010 06:18:01

În schimb, poți găsi calea către pdf astfel: $pdf_src = get_attached_file($post->ID ); $bytes = filesize( $pdf_src );

Dipesh KC Dipesh KC
29 apr. 2013 15:39:28
1

De fapt, acest lucru depinde în totalitate de browser. Unele browsere vor deschide un PDF în fereastră folosind un cititor PDF integrat (majoritatea folosesc plugin-ul Adobe, Google Chrome are propriul său). Dacă plugin-ul lipsește, însă, browserul va încerca să descarce fișierul.

Cea mai sigură opțiune este să adaugi instrucțiuni pe pagină pentru utilizator să facă click dreapta și să selecteze "Salvează ca".

Dacă ești preocupat că utilizatorii nu vor putea reveni la pagină după ce apasă pe un link, adaugă target="_blank" la link și va forța browserul să deschidă link-ul într-o filă sau fereastră nouă. Uneori, acest lucru poate fi suficient pentru a declanșa o descărcare în loc de deschidere.

Exemplu: <a href="http://site.url/document.pdf" target="_blank">Descarcă PDF</a>.

15 dec. 2010 19:22:07
Comentarii

De fapt, "forțarea unei descărcări" depinde în întregime de anteturile de răspuns HTTP trimise de server; nu de browser. Totuși, dacă un PDF poate fi afișat în browser depinde de browser/plugin-uri.

MrWhite MrWhite
24 ian. 2015 14:34:18
0

Pur și simplu folosește atributul `download` al tag-ului a: https://www.w3schools.com/tags/att_a_download.asp

4 mar. 2021 01:48:13