PHP 프로젝트의 tmp 폴더에서 CSV 다운로드

사라 티 베츠

저는 현재 Zend Framework를 사용하는 PHP 프로젝트를 진행하고 있습니다. 컨트롤러에서 문제없이 CSV를 만들고 있지만 사용자가보기의 버튼을 클릭하여 파일을 다운로드 할 수 있기를 원합니다.

내에서 .phtml:

<a class="btn" href="<?php echo $this->download;?>" download>Export to CSV</a>

$this->download 컨트롤러에서 설정 중입니다.

$view["download"] = $this->_createCSV($bqc_jobs, $startDate, $endDate, $processor_id, $defaultTime);

_createCSV함수는 CSV를 만들어 사이트에서 사용하는 임시 디렉터리에 저장합니다. 그런 다음 파일 경로를 반환합니다.

private function _createCSV($jobs, $start, $end, $user=null, $minutes){
    $format = "Ymd_His";
    if(!$start && !$user){
        $start = date($format, strtoTime("-" . $minutes . " minutes"));
    }

    if(!$end){
        $end = \DateTime::createFromFormat($format, date($format))->format($format);
    }
    $directory = Config::$tempDir; 
    $fileName = $directory . "/" . ($user ? $user . "_" : "") . ($start ? $start . "_" : "") . $end . "_report.csv";  

    $file = fopen($fileName, 'w'); 
    foreach ($jobs as $job){
        fputcsv($file, $job); 
    }

    fclose($file); 

    return $fileName; 
}

버튼을 클릭하면 브라우저가 파일 다운로드를 시도하지만 파일을 찾을 수 없기 때문에 오류가 발생합니다. 이것은 브라우저가 임시 폴더에 액세스 할 수 없어야하기 때문에 이치에 맞지만이 문제를 해결하는 방법을 완전히 모르겠습니다.

제임스 셰위

UNIX 파일 권한으로 인해 폴더를 볼 수없는 경우 유일한 옵션은 다음과 같습니다.

  1. 웹 서버가 chmod / chown을 사용하여 읽고 쓸 수 있도록 tmp 폴더의 파일 권한을 변경하십시오 (나는 그것이 리눅스 시스템이라고 가정합니까?)
  2. 충분한 권한이있는 다른 폴더 사용
  3. 파일을 디스크에 저장하지 말고 대신 데이터베이스에 저장하십시오 (최적화되지 않음).

파일 권한이 정상이고 파일을 아파치에서 읽을 수 있다고 확신하면 php의 readfile 함수를 사용 하여 실제로 파일을 브라우저로 다시 전송할 수 있어야합니다.

<?php
$file = '/tmp/monkey.gif';

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));
    readfile($file);
    exit;
}
?>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP에서 폴더 다운로드

분류에서Dev

php tmp 폴더 오류로 인해 서버에 미디어를 업로드 할 수 없습니다.

분류에서Dev

laravel api에서 core php 프로젝트 폴더로 이미지 업로드

분류에서Dev

Lambda의 / tmp 폴더에서 csv 파일을 읽고 필터링 한 다음 s3에 업로드합니다.

분류에서Dev

내 프로젝트 경로 django에서 csv 파일 다운로드

분류에서Dev

PHP에서 다운로드 가능한 .CSV 파일 생성

분류에서Dev

'/'파티션에서 마운트 된 파티션 (/ mnt)으로 tmp 폴더 이동

분류에서Dev

'/'파티션에서 마운트 된 파티션 (/ mnt)으로 tmp 폴더 이동

분류에서Dev

Vue CLI 프로젝트 폴더에서 .pdf 파일 다운로드

분류에서Dev

Ruby on Rails 프로젝트의 tmp 폴더를 무시하도록 자식을 얻을 수 없습니다.

분류에서Dev

Java의 프로젝트 폴더에서 PDF 파일을 다운로드하는 방법

분류에서Dev

ID를 기반으로 csv 파일에서 폴더로 이미지 다운로드

분류에서Dev

PHP, 세션이 필요한 웹 사이트에서 다운로드 csv 시도

분류에서Dev

한 폴더에서 다른 폴더로 PHP 복사 기능

분류에서Dev

PHP laravel에서 csv 파일을 다운로드 할 수 없습니다.

분류에서Dev

앱에서 CSV 또는 TXT 파일을 생성하고 '다운로드'폴더에 저장-Android

분류에서Dev

Magento 2에서 프로젝트의 루트 폴더에 Mage.php 파일을 만드는 방법은 무엇입니까?

분류에서Dev

ChatBot의 프로젝트 폴더에서 JSON 파일 읽기

분류에서Dev

PHP-링크에서 PDF 파일을 다운로드하고 로컬 파일 폴더에 저장

분류에서Dev

Qt Creator 프로젝트에서 폴더 / 하위 폴더 생성

분류에서Dev

Android 테스트 프로젝트의 res 폴더에서 파일로드

분류에서Dev

PHP에서 .csv 파일 열기, 편집 및 다운로드 문제

분류에서Dev

Rails 3.2에서 CSV 다운로드

분류에서Dev

R에서 csv 파일 다운로드

분류에서Dev

Windows에서 spark-csv 다운로드

분류에서Dev

내 PHP 프로젝트가 포함 된 Gmail에서 Rar 파일을 다운로드 할 수 없습니다.

분류에서Dev

Visual Studio 2017에서 Xamarin.Android 프로젝트의 밉맵 폴더로 대체 된 드로어 블 폴더?

분류에서Dev

tmp 폴더 flask python에 파일 업로드

분류에서Dev

PHP 스크립트에서 별도로 생성 된 여러 .csv 파일 다운로드

Related 관련 기사

  1. 1

    PHP에서 폴더 다운로드

  2. 2

    php tmp 폴더 오류로 인해 서버에 미디어를 업로드 할 수 없습니다.

  3. 3

    laravel api에서 core php 프로젝트 폴더로 이미지 업로드

  4. 4

    Lambda의 / tmp 폴더에서 csv 파일을 읽고 필터링 한 다음 s3에 업로드합니다.

  5. 5

    내 프로젝트 경로 django에서 csv 파일 다운로드

  6. 6

    PHP에서 다운로드 가능한 .CSV 파일 생성

  7. 7

    '/'파티션에서 마운트 된 파티션 (/ mnt)으로 tmp 폴더 이동

  8. 8

    '/'파티션에서 마운트 된 파티션 (/ mnt)으로 tmp 폴더 이동

  9. 9

    Vue CLI 프로젝트 폴더에서 .pdf 파일 다운로드

  10. 10

    Ruby on Rails 프로젝트의 tmp 폴더를 무시하도록 자식을 얻을 수 없습니다.

  11. 11

    Java의 프로젝트 폴더에서 PDF 파일을 다운로드하는 방법

  12. 12

    ID를 기반으로 csv 파일에서 폴더로 이미지 다운로드

  13. 13

    PHP, 세션이 필요한 웹 사이트에서 다운로드 csv 시도

  14. 14

    한 폴더에서 다른 폴더로 PHP 복사 기능

  15. 15

    PHP laravel에서 csv 파일을 다운로드 할 수 없습니다.

  16. 16

    앱에서 CSV 또는 TXT 파일을 생성하고 '다운로드'폴더에 저장-Android

  17. 17

    Magento 2에서 프로젝트의 루트 폴더에 Mage.php 파일을 만드는 방법은 무엇입니까?

  18. 18

    ChatBot의 프로젝트 폴더에서 JSON 파일 읽기

  19. 19

    PHP-링크에서 PDF 파일을 다운로드하고 로컬 파일 폴더에 저장

  20. 20

    Qt Creator 프로젝트에서 폴더 / 하위 폴더 생성

  21. 21

    Android 테스트 프로젝트의 res 폴더에서 파일로드

  22. 22

    PHP에서 .csv 파일 열기, 편집 및 다운로드 문제

  23. 23

    Rails 3.2에서 CSV 다운로드

  24. 24

    R에서 csv 파일 다운로드

  25. 25

    Windows에서 spark-csv 다운로드

  26. 26

    내 PHP 프로젝트가 포함 된 Gmail에서 Rar 파일을 다운로드 할 수 없습니다.

  27. 27

    Visual Studio 2017에서 Xamarin.Android 프로젝트의 밉맵 폴더로 대체 된 드로어 블 폴더?

  28. 28

    tmp 폴더 flask python에 파일 업로드

  29. 29

    PHP 스크립트에서 별도로 생성 된 여러 .csv 파일 다운로드

뜨겁다태그

보관