문제

CSV 파일을 다운로드 할 수있는 링크를 사용자에게 제공합니다 ...

Click <a href="report.csv">here</a> to download your file.

이 텍스트와 링크는 작은 팝업 창 -Height 100 너비 400에 표시됩니다.

사용자가 "저장"을 클릭하면 문제가 없으면 파일이 원하는 곳에 저장됩니다.

"열기"를 선택하면 CSV 파일이 작은 팝업 창에 표시됩니다. 내가 원하는 것 - 나는 Excel이 Excel에 파일을 열고 표시하는 것을 선호하거나 "열기"버튼을 비활성화하는 것이 가능한 옵션 일 수도 있습니다.

내가 달성 할 수있는 방법이 있습니까?

감사,

도움이 되었습니까?

해결책

나는 당신이 JavaScript를 사용하여 그 팝업 박스를 열고 있다고 가정합니다. 그래서 나는 당신의 작은 "다운로드"팝업 상자를 보여 주거나 열지 말고 대신 웹 페이지 에이 링크를 보여줄 것을 제안합니다. 따라서 누군가 링크를 클릭하면 브라우저가 파일을 다운로드하도록 강제로 파일을 열고 싶을 때 Browswer의 Windows 크기만큼 넓은 시야를 얻을 수 있습니다.

// 예를 들어, ZIP 파일의 다운로드를 강제하려면 헤더를 다음과 같이 보냅니다.

// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");

다른 팁

어떤 애플리케이션에서 어떤 파일 유형을 열 었는지와 같은 사용자의 설정에 대한 전원이 없습니다. 그들은 설정으로 가서 파일 연관성을 변경해야합니다. 그러나 모든 사람이 Excel을 설치 한 것은 아니므로 사용자 가이 특정 응용 프로그램에서 CSV 파일을 열도록 강요하는 것은 좋은 생각이 아닙니다.

또한 열린 옵션을 비활성화 할 수 있다고 생각하지 않습니다. 이것은 웹 브라우저의 구성에 의해 지시되어 창을 표시 할 것인지 아니면 관련 응용 프로그램을 직접 시작하는지 등이없는 것 같습니다. 당신의 특별한 경우에 운이 좋다.

나는 이것이 OS 수준이라고 믿고 변경할 수 없다고 생각합니다.

반 솔루션이 추가되고 있습니다 target="_blank" 태그에. 이렇게하면 사용자가 '열기'옵션을 선택하면 최소한 파일이 새 (전체 스크린 또는 최소한 재판용 가능한) 창으로 열립니다.

그 외에는 Ceejayoz가 말했듯이 창의 동작을 변경할 수 없습니다.

  • 이 시점 이전에 다른 출력을하지 않도록하십시오.
  • CSV 문자열을 빌드하고 $ csvstring에 저장하십시오.
  • $ csv_filename으로 적절한 파일 이름을 제공하십시오
  • 헤더는 브라우저에 Excel에로드하도록 지시해야합니다.

    header("Cache-Control: maxage=1");

    header("Pragma: public");

    header("Content-Type: application/vnd.ms-excel");

    header("Expires: 0");

    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

    header("content-disposition: attachment;filename=$csv_filename");

    echo $csvString;

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