나는 symfony 1.4와 함께 프로젝트를 가지고 있으며 .csv 파일로 mysql 테이블을 내보내고 서버에서 다운로드하고, 지역 개발을 위해 Wampserver를 사용하고 있습니다. 모든 것이 정상적으로 작동합니다. 하지만 프로덕션 서버에 업로드 할 때 데이터를 내보내려고하면 .csv 파일을 저장하거나 열 것인지 묻지 않고 브라우저에서 자동으로 열립니다. CSV는 브라우저 나에게 개방의 옵션을 제공하거나 지금, 저장,이 코드의 문제, 서버 또는 아무것도의 설정이며 내가이 일을 확인 내 로컬 서버에서 반복이symfony 파일을 다운로드하십시오.
$this->setLayout(false);
sfConfig::set('sf_web_debug', false);
$this->getResponse()->setHttpHeader('Content-Type', 'text/csv');
$this->getResponse()->setHttpHeader('Content-Disposition', 'attachment; filename="file.csv"');
$this->getResponse()->setHttpHeader('Pragma', 'no-cache');
$this->getResponse()->setHttpHeader('Expires', '0');
readfile(sfConfig::get('sf_upload_dir') . "/export/file.csv");
return sfView::NONE;
입니다 ??
파일이 utf-8 인코딩으로 저장됩니다. 이것이 문제입니까 ??
감사
의견에
'application/csv'를 콘텐츠 유형으로 사용해 보셨습니까? – j0k
'Content-Disposition' 헤더가 클라이언트에게 올바르게 전송 되었습니까? 서버는 응답을 다시 보내기 전에 헤더를 수정할 수 있습니다. – 1ed
[PHP를 사용하여 파일을 다운로드하도록 강요] 가능한 복제본 (http://stackoverflow.com/questions/1465573/forcing-to-download-a-file-using-php) – j0k