2009-10-02 11 views
6

사용자가 "Download PDF"링크를 클릭하면 다운로드 프롬프트가 표시되고 사용자가 파일을 다운로드 할 수있게됩니다.파일 다운로드를 트리거하는 링크를 만드는 방법은 무엇입니까?

현재 사용자는 PDF 파일의 주소로 전송됩니다. 예를 들어

는 :

<a..[what goes here??]..>Download PDF</a> 

은이 작업을 수행하는 데 필요한 자바 스크립트 & PHP의 조합이 있다고 보인다.

누구든지 예제를 제공 할 수 있습니까?

답변

6

아파치에 있다면, 당신은 당신의 .htaccess에이 드롭 할 수 있습니다

<Files *.pdf> 
    Header set Content-Disposition attachment 
</Files> 

이 다운로드 모든 PDF 문서를 보내드립니다.그래도 mod_headers을 사용하도록 설정해야합니다.

+0

그건 내가 뭘 찾고 있었는지, 고마워! – edt

+0

당신을 진심으로 환영합니다. :) – middus

+0

'download' 속성도 있습니다. 어떤 브라우저가이를 지원하는지 잘 모르겠지만 어쨌든 추가 할 수 있습니다. – Darkwater

0

는 현재 사용자가 바로 PDF 파일의 주소로 전송하여 무슨 뜻인지 분명하지 않다. 의 선택은 또는 개방을 다운로드

<a href='http://example.com/download.pdf'>Download PDF</a> 

파일 브라우저의 설정을 더 :

는하지만 간단한 방법을 제안한다.

당신은 웹 서버 응답에 HTTP 헤더를 추가하여 링크 된 내용을 저장하기 위해 브라우저를 강제 할 수
1

:

Content-Disposition: attachment; filename=<default filename to save as> 

다른 측면에서, 나는 정말 사용자의 브라우저를 오버라이드 (override)에 지점을 볼 수 없습니다 구성은 일반적으로 PDF 문서가 브라우저에서 열리거나 별도의 PDF 뷰어에서 열리거나 디스크에 저장되어야하는지 여부를 알려줍니다.

+0

일반적으로 사용자의 선호도를 존중해야한다고 동의하지만 브라우저에서 파일을 다운로드하는 것이 아니라 파일을 다운로드하도록 권장해야하는 경우가 하나 이상 있다고 생각할 수 있습니다. 온라인 보험 정책 등과 같은 복사본을 저장하십시오. –

0

나는 당신의 문제, 바닐라 HTML에 마법의 자바 스크립트/PHP 솔루션이 생각하지 않는다 :

<a href="docco.pdf" title="this is a link to a pdf">download the PDF</a> 

가 자원을 요청하는 브라우저를 직접 것, 필요한 것을 할 것 "docco가. pdf "를 사용하면이 작업을 수행하는 것은 브라우저 (및 모든 플러그인)의 책임입니다.

예를 들어 팝업으로 수행 할 작업의 선택을 사용자에게 제공하는 firefox 애드온 "PDF download"이 있습니다.

<?php 
header('Content-disposition: attachment; filename=movie.mpg'); 
header('Content-type: video/mpeg'); 
readfile('movie.mpg'); 
?> 

당신의 <a href 코드가 특정 페이지를 가리 키도록해야합니다 및 ReadFile을 당신의 자원 전화

Further reading

그냥 것

7

리디렉션 거기에이 코드와 PHP 페이지로 부수적으로, 나는 당신이 브라우저 설정을 오버라이드해서는 안되는 것에 동의하지만 때로는 상사가 묻는다면, 당신은해야만한다.

1

태그에 HTML5 download 속성을 사용할 수 있습니다.

<a href="http://love4cats.com/kitten-catalogue.pdf" download>Download the CATalogue</a> 

분석을 확인하고 대상 브라우저에서 속성을 지원하는지 확인해야합니다. 브라우저 지원에 대해서는 caniuse.com entry 페이지를 참조하십시오.

2
You can also use the following code: 

<?php 
$file = filter_input(INPUT_GET, 'file'); 
$filename = basename($file); 
header("Content-Type: application/force-download"); 
header("Content-Disposition: attachment; filename=\"{$filename}\";"); 
readfile("your file path {$file}"); 
?> 

이 같은 모든 파일 확장자하라는 메시지가 표시됩니다 (.PDF를, .DOCX, .ZIP, .CSV,이 .txt 또는 .html, .PHP 등등 ...) 직접 새 브라우저로 열지 않고 .

관련 문제