2016-02-08 4 views
1

Мне нужно скачать файл по клику по ссылке в прессе. У меня есть файл url. Я знаю код загрузки в php, и я добавил в functions.php.Как создать ссылку для загрузки файла в шаблоне страницы

function downloadFile($f){ 
    header('Content-Disposition: attachment; filename=' . urlencode($f)); 
    header('Content-Type: application/force-download'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Type: application/download'); 
    header('Content-Description: File Transfer'); 
    header('Content-Length: ' . filesize($f)); 
    echo file_get_contents($f); 
} 

Теперь, как позвонить этой функции по щелчку ссылки? Что будет "HREF" в ссылке

ответ

3

На странице ссылке:

<a href="download.php?f=foo">Download "Foo"</a> 

На download.php (или любое имя вы выбрали):

include "functions.php"; 
downloadFile($_GET["f"]); 
exit; 

Редактировать Или просто создайте страницу download.php:

<?php 
    if(isset($_GET["f"])){ 
     $f = $_GET["f"]; 
     header('Content-Disposition: attachment; filename='.urlencode($f)); 
     header('Content-Type: application/force-download'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Type: application/download'); 
     header('Content-Description: File Transfer'); 
     header('Content-Length: ' . filesize($f)); 
     echo file_get_contents($f); 
    } 
    exit; 
?> 
+0

Я имею в виду в wordpress – prasadmsvs

+0

WordPress не из PHP. – Milap

+0

Я знаю, как это сделать в php. Мне нужно знать, как это сделать в Wordpress. Я знаю, что wordpress не из php. Но я хочу знать, как это сделать. – prasadmsvs

0

Вместо создания функции, что вы можете сделать, это создать новую страницу в Wordpress бэкенд и положить ваши заголовки PHP в пользовательском шаблоне для этой страницы, как это (просто скачать PDF файл):

<?php 
// Specify wordpress template name 
/* Template Name: Download Page */ 

// We'll be outputting a PDF 
header('Content-type: application/pdf'); 

// Set filename of download 
header('Content-Disposition: attachment; filename="FILENAME.pdf"'); 

// Path to the file (searching in wordpress template directory) 
$url = get_template_directory_uri() . "/folder/ORIGINAL_FILE.pdf"; 

readfile($url); 
?> 

Тогда вы можете просто поместить постоянную ссылку на свою новую страницу wordpress в качестве ссылки href на ссылку для скачивания. Permalinks для WordPress страницы можно редактировать по своему желанию на WordPress бэкэнда, так что вы могли бы сделать что-то вроде:

www.example.com/downloadfile

Я знаю, что это старый, но в последнее время я имел эту проблему, а также, надеюсь, что это поможет любому, кто тоже оказался здесь!

Смежные вопросы