문제

Symfony2 프레임 워크를 사용하고 다음 코드를 사용하여 XML 파일을 내보내는 것입니다.

$response->setStatusCode(200);
$response->headers->set('Content-Type', 'application/xml');
$response->headers->set('Content-Description', 'Submissions Export');
$response->headers->set('Content-Disposition', 'attachment; filename="' . $filename .'"');
$response->headers->set('Content-Transfer-Encoding', 'binary');
$response->headers->set('Pragma', 'no-cache');
$response->headers->set('Expires', '0');

"Content-Transfer-Encoding"또는 "Pragma"또는 "Content-Type"및 "Content-Disposition"을 제외한 모든 것을 복용하든 상관 없습니다. Chrome의 결과는 항상 "Filename-, Attachment"(없음 ") Firefox에서는 잘 작동합니다.

예를 들어, home.xml firefox라는 파일이있는 경우 home.xml을 다운로드하는 반면 Chrome은 home.xml-, 첨부 파일을 제공합니다.

도움이 되었습니까?

해결책

나는 이것이 꽤 오래된 토론이라는 것을 알고 있지만, 누군가가 여기에 도움을 찾고 있다면 Chrome이 파일 이름의 끝에서 세미콜론을 원한다고 판단한 다음 행복하다는 것을 결정했습니다. (vbscript)에서와 같이 :

Response.AddHeader "Content-Disposition", "attachment;filename=Something.xls;"

그것은 나를 위해 그것을 고쳤다. -Dave

다른 팁

Zend에서도 같은 문제가 있었기 때문에이 게시물에 Anwser를 추가하고 싶었던 많은 비 작업 물건을 발견했기 때문입니다. 해결하는 데 시간이 걸렸으므로 더 많은 사용자와 개발자가 내가 어떻게 해결했는지 알고 싶어 할 것이라고 생각했습니다. 나는 fopen 호출 직전에 이것을 추가합니다.

header('Content-Disposition: attachment; filename='.time().'.csv');

나를 위해 문제를 해결했습니다. 내가 컨텍스트를 사용하기 전에 버기가 무엇인지 전환했지만 이제는 매력으로 작동합니다. 이전 콘텐츠 배치 헤더를 제거하는 것을 잊지 마십시오. 따라서 이중 헤더 오류가 발생할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top