는 방법은 다운로드 파일의 이름을 선택하는 방법이 있나요?

StackOverflow https://stackoverflow.com/questions/894298

  •  23-08-2019
  •  | 
  •  

문제

나는 파일에 대한 링크를트:

<a href="history.nasa.gov/monograph15b.pdf">NASA</a>

하고 싶을 때,그래서 그것은 방문자가 링크를 클릭하여 다운로드 이름이는 팝업 PDF 것입니다.pdf 지 monograph15b.pdf.

이것이 가능한 언어?

도움이 되었습니까?

해결책

지 않는 경우를 호스팅하려는 파일을 자신을 읽을 수 있습에 파일 내용과 다음 보낼 내용은 브라우저에 직접 적절한 헤더가 있습니다.

이는 속도가 느려질 수 있을 것이기 때문에 다시 다운로드 파일 NASA 에서 각각의 시간을 당신의 PHP 페이지 실행됩니다.

<?php
$filename = "http://history.nasa.gov/monograph15b.pdf";
$outputfilename = "NASA.pdf";

header("Content-Type:  application/pdf");
header("Content-Disposition:  attachment; filename=\"" . basename($outputfilename) . "\";" );
header("Content-Transfer-Encoding:  binary");
readfile("$filename");
?>

또한 이러한 접근법이 필요 PHP 수 있도록 구성됩 fopen() 처리할 수 있는 파일을 읽기합니다.

다른 팁

실제로 그렇게하는 유일한 방법은 먼저 문제의 파일을 자신의 서버에 다운로드하고 원하는대로 이름을 지정 한 다음 최종 사용자에게 다시 제공하는 것입니다.

HTTP 헤더를 살펴보십시오 내용화 헤더, 파일 이름을 지정할 수 있습니다.

Asp.net과 같은 서버 측 기술을 사용해야합니다. 위치에 페이지에 버튼을 넣습니다. 버튼을 클릭하면 다음 작업이 수행됩니다.

1.) 응답 .clear ();

2.) response.addHeader ( "내용화", "첨부 파일; filename = nasa.pdf");

3.) 응답 .ContentType = "Application/Octet-stream";

4.) response.writefile (context.server.mappath ( "history.nasa.gov/monograph15b.pdf")); // 응용 프로그램의 실질적으로 올바른 경로를 설정해야합니다.

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