2011-12-01 2 views
1

아래 코드를 사용하여 CSV 파일을 열 수 있습니다. 그러나 어떤 이유로 인해 shopkeeper/89137.csvshopkeeper_89137.csv으로 변환하는 것으로 보입니다. 빈 CSV 파일을 열어두기 때문에 분명히 거기에있는 파일을 찾고 있기 때문입니다. 파일을 열 때 참조 할 수있는 적절한 방법은 무엇입니까?PHOP 헤더 - PHP 스크립트에서 CSV 파일 열기

  header("Content-type: text/csv"); 
      header("Content-Disposition: attachment; filename=shopkeeper/89137.csv"); 
      header("Pragma: no-cache"); 
      header("Expires: 0"); 
+0

흠, "CSV 파일 열기"에 대해 이야기했지만 클라이언트의 브라우저로 실제로 스트리밍했습니다 ... – Leon

+0

내가 아는 한, 이는 파일 내용을 나타내는 브라우저로 전송되는 헤더입니다 콘텐츠 자체가 아니라 전송되고 있습니다. 어떤 방식 으로든 컨텐츠를 출력하고 있습니까? 파일 이름은 단순히 브라우저가 다운로드를 제시 할 때 사용할 파일의 이름입니다. –

+0

@BrendanBullen "내용 자체가 아니라 파일의 내용이 전송되고 있음을 나타냅니다."-이 두 번 읽어야했습니다 .--) – Leon

답변

1

은 헤더 파일의 기본 이름 보내지 만 포함해야합니다 ... 당신의 이름 지정 방식을 재고 것입니다. 사물을받는 쪽에서는 대부분의 운영 체제에서 파일 이름에 잘못된 문자 (/)가 포함되어 있으므로 "storekeeper/89137.csv"라는 파일 이름을 전달하려고합니다. 밑줄로 변환됩니다.

당신은 아마 읽어 줄을 조정할해야합니다

header("Content-Disposition: attachment; filename=89137.csv");

1

실제로, 문자 / 소유되고, 파일 이름으로서 사용될 수 없다!

나는

2

참조하는 파일 경로가 HTTP 헤더에 적합하지 않습니다. 파일 이름은 "89137.csv"만 참조해야하며 파일 열기 기능에서 파일 이름에 "shopkeeper /"를 추가하여 파일을 처리하십시오. header string 매개 변수에서 변수를 계속 사용할 수 있습니다.

+0

[spec] (http://www.ietf.org/rfc/rfc2183.txt)에 따르면 파일 경로를 전혀 참조 할 수 없습니다. 게다가,이 헤더들은 사용자의 브라우저에서 SaveAs 대화창을 열 것이므로, OP를 사용하여 OP가 "파일 열기 기능에서 파일 이름에 가게 주인을 추가하십시오"? – Leon