2016-02-22 3 views
0

Мне нужно скачать csv-файл из папки export, находящейся внутри папки www.
Я мог бы сделать это как ссылку, но, пытаясь сохранить как файлы csv, будет загружен пустой файл csv. Есть идеи?скачать файл из папки с помощью php

<?php 
$dir_open = opendir('./export'); 

while(false !== ($filename = readdir($dir_open))){ 
if($filename != "." && $filename != ".."){ 
    $link = "<a href='./$filename'> $filename </a><br />"; 

    echo $link; 
} 
} 
closedir($dir_open); 
?> 

результирующие ссылки как:
enter image description here

правой кнопкой мыши и выбрав Сохранить ссылку как, пустой файл CSV загружается

+1

В 'href' части вам нужно добавить' export' папку. Не только имя файла. – Daan

+0

Вы ссылаетесь на ./$filename, тогда как файлы хранятся в ./export/$filename –

+0

спасибо Daan, он работает –

ответ

1

Попробуйте это тот, который я использовал это. Пример: download.php

<?php 
if(isset($_GET['link'])) 
{ 
    $var_1 = $_GET['link']; 

    $dir = "export/"; 
    $file = $dir . $var_1; 

    if (file_exists($file)) 
    { 
     header('Content-Description: File Transfer'); 
     header('Content-Type: application/octet-stream'); 
     header('Content-Disposition: attachment; filename='.basename($file)); 
     header('Expires: 0'); 
     header('Cache-Control: must-revalidate'); 
     header('Pragma: public'); 
     header('Content-Length: ' . filesize($file)); 
     ob_clean(); 
     flush(); 
     readfile($file); 
     exit; 
    } 
} 
?> 

Я использовал ссылку, как этот

$link = "<a href='download.php?link=$filename'> $filename </a><br />";