2014-09-17 3 views
3

У меня есть общая функция php, которая accecpts ресурс и загружает его как файл csv, resoure является либо файлом, либо php: // памятью. Как определить размер этого ресурса, так что я могу установить длину содержимого заголовкаКак получить размер ресурса php

/** Download a file as csv and exit */ 
    function downloadCsv($filName, $fil) { 
    header("Content-Type: application/csv"); 
    header("Content-Disposition: attachement; filename=$filName"); 
    // header("Content-Length: "....... 
    fpassthru($fil); 
    exit; 
    } 

Я могу видеть, как получить размер файла из имени файла, используя FileSize ($ файла), но в этой функции I не знаю/имеет имя файла, justa resource

ответ

-2

Вы можете получить размер файла, используя функцию filesize().

Пример:

header('Content-Length: '.filesize($fileName)); 
-2

Просто используйте PHP: // TEMP/ИЛИ PHP: // память/

php:// Reference

/** Download a file as csv and exit */ 
function downloadCsv($filName, $fil) { 
    header("Content-Type: application/csv"); 
    header("Content-Disposition: attachement; filename=$filName"); 

    //here the code 
    $tmp_filename = 'php://temp/'.$filName; 
    $fp = fopen($tmp_filename,'r+'); 
    fwrite($fp, $fil); 
    fclose($fp); 

    header("Content-Length: ".filesize($tmp_filename)); //use temp filename 
    readfile($fil); 
    exit; 
} 
Смежные вопросы