Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

Tôi đang cung cấp liên kết của một tệp pdf trên trang web của mình để tải xuống, như bên dưới

Download Brochure

Vấn đề là khi người dùng nhấp vào liên kết này sau đó

  • Nếu người dùng đã cài đặt Adobe Acrobat, thì nó sẽ mở tệp trong cùng một cửa sổ trình duyệt trong Adobe Reader.
  • Nếu Adobe Acrobat không được cài đặt thì nó sẽ bật lên cho người dùng để tải xuống tệp.

Nhưng tôi muốn nó luôn luôn bật lên cho người dùng để tải xuống, không phân biệt "Adobe Acrobat" có được cài đặt hay không.

Xin vui lòng cho tôi biết làm thế nào tôi có thể làm điều này?

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

Rob w

334K80 Huy hiệu vàng785 Huy hiệu bạc670 Huy hiệu đồng80 gold badges785 silver badges670 bronze badges

Hỏi ngày 13 tháng 12 năm 2008 lúc 7:09Dec 13, 2008 at 7:09

djmzfknmdjmzfknmdjmzfKnm

26.3k68 Huy hiệu vàng164 Huy hiệu bạc226 Huy hiệu Đồng68 gold badges164 silver badges226 bronze badges

Đây là một vấn đề phổ biến nhưng ít người biết có một giải pháp HTML 5 đơn giản:

Download the pdf

Trong đó

Download the pdf
9 là tên tệp được đề xuất cho người dùng để lưu tệp. Hoặc nó sẽ mặc định cho tên tệp trên máy chủ nếu bạn để trống, như thế này:

Download the pdf

Khả năng tương thích: Tôi đã thử nghiệm điều này trên Firefox 21 và Iron, cả hai đều hoạt động tốt. Nó có thể không hoạt động trên các trình duyệt không tương thích hoặc lỗi thời HTML5. Trình duyệt duy nhất tôi đã thử nghiệm không buộc tải xuống là IE ...

Kiểm tra khả năng tương thích tại đây: http://caniuse.com/#feat=download

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

Đã trả lời ngày 9 tháng 6 năm 2013 lúc 15:46Jun 9, 2013 at 15:46

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

6

Thay vì liên kết với tệp .pdf, thay vào đó làm một cái gì đó như

Download my eBook

mà xuất ra một tiêu đề tùy chỉnh, mở PDF (an toàn nhị phân) và in dữ liệu lên trình duyệt của người dùng, sau đó họ có thể chọn lưu pdf mặc dù cài đặt trình duyệt của họ. Pdf_server.php sẽ trông như thế này:

header("Content-Type: application/octet-stream");

$file = $_GET["file"] .".pdf";
header("Content-Disposition: attachment; filename=" . urlencode($file));   
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Description: File Transfer");            
header("Content-Length: " . filesize($file));
flush(); // this doesn't really matter.
$fp = fopen($file, "r");
while (!feof($fp))
{
    echo fread($fp, 65536);
    flush(); // this is essential for large downloads
} 
fclose($fp); 

PS: và rõ ràng chạy một số kiểm tra độ tỉnh trên biến "tệp" để ngăn mọi người ăn cắp các tệp của bạn như không chấp nhận phần mở rộng tệp, từ chối chém, thêm .pdf vào giá trị

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 7:18Dec 13, 2008 at 7:18

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

TravisotravisoTravisO

9.3604 Huy hiệu vàng35 Huy hiệu bạc44 Huy hiệu đồng4 gold badges35 silver badges44 bronze badges

13

Đừng lặp qua mọi dòng tệp. Sử dụng readfile thay thế, nó nhanh hơn. Đây là ngoài trang web PHP: http://php.net/manual/en/function.readfile.php through every file line. Use readfile instead, its faster. This is off the php site: http://php.net/manual/en/function.readfile.php

$file = $_GET["file"];
if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header("Content-Type: application/force-download");
    header('Content-Disposition: attachment; filename=' . urlencode(basename($file)));
    // header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}

Đảm bảo vệ sinh biến nhận của bạn vì ai đó có thể tải xuống một số tệp PHP ...

Đã trả lời ngày 14 tháng 11 năm 2011 lúc 13:35Nov 14, 2011 at 13:35

Alex Valex vAlex V

Huy hiệu vàng 18K534 Huy hiệu bạc35 Huy hiệu đồng5 gold badges34 silver badges35 bronze badges

1

Thay vì sử dụng tập lệnh PHP, để đọc và xóa tệp, sẽ gọn gàng hơn để viết lại tiêu đề bằng

Download the pdf
0. Điều này sẽ giữ một url "đẹp" (
Download the pdf
1 thay vì
Download the pdf
2).


ForceType applicaton/octet-stream
Header set Content-Disposition attachment

Đã trả lời ngày 9 tháng 2 năm 2012 lúc 10:24Feb 9, 2012 at 10:24

Rob Wrob wRob W

334K80 Huy hiệu vàng785 Huy hiệu bạc670 Huy hiệu đồng80 gold badges785 silver badges670 bronze badges

3

Hỏi ngày 13 tháng 12 năm 2008 lúc 7:09

djmzfknmdjmzfknm

Thanks for downloading! If your download doesn't start shortly, click here.

26.3k68 Huy hiệu vàng164 Huy hiệu bạc226 Huy hiệu Đồng

var delay = 3000;
window.setTimeout(function(){$('#downloadLink')[0].click();},delay);

Đây là một vấn đề phổ biến nhưng ít người biết có một giải pháp HTML 5 đơn giản:

Trong đó

Download the pdf
9 là tên tệp được đề xuất cho người dùng để lưu tệp. Hoặc nó sẽ mặc định cho tên tệp trên máy chủ nếu bạn để trống, như thế này:Aug 6, 2013 at 14:59

Khả năng tương thích: Tôi đã thử nghiệm điều này trên Firefox 21 và Iron, cả hai đều hoạt động tốt. Nó có thể không hoạt động trên các trình duyệt không tương thích hoặc lỗi thời HTML5. Trình duyệt duy nhất tôi đã thử nghiệm không buộc tải xuống là IE ...Alex W

Kiểm tra khả năng tương thích tại đây: http://caniuse.com/#feat=download12 gold badges101 silver badges109 bronze badges

Đã trả lời ngày 9 tháng 6 năm 2013 lúc 15:46

header("Content-Type: application/octet-stream");

Thay vì liên kết với tệp .pdf, thay vào đó làm một cái gì đó như

mà xuất ra một tiêu đề tùy chỉnh, mở PDF (an toàn nhị phân) và in dữ liệu lên trình duyệt của người dùng, sau đó họ có thể chọn lưu pdf mặc dù cài đặt trình duyệt của họ. Pdf_server.php sẽ trông như thế này:Dec 13, 2008 at 7:27

PS: và rõ ràng chạy một số kiểm tra độ tỉnh trên biến "tệp" để ngăn mọi người ăn cắp các tệp của bạn như không chấp nhận phần mở rộng tệp, từ chối chém, thêm .pdf vào giá trịSudden Def

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 7:183 gold badges18 silver badges8 bronze badges

Travisotraviso

Download Brochure

9.3604 Huy hiệu vàng35 Huy hiệu bạc44 Huy hiệu đồng

Download the pdf
1

Đừng lặp qua mọi dòng tệp. Sử dụng readfile thay thế, nó nhanh hơn. Đây là ngoài trang web PHP: http://php.net/manual/en/function.readfile.php

Download the pdf
2

Đảm bảo vệ sinh biến nhận của bạn vì ai đó có thể tải xuống một số tệp PHP ...

Đã trả lời ngày 14 tháng 11 năm 2011 lúc 13:35Nov 19, 2020 at 11:30

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

1

Alex Valex v

Download the pdf
3

Huy hiệu vàng 18K534 Huy hiệu bạc35 Huy hiệu đồngFeb 24, 2017 at 18:48

Thay vì sử dụng tập lệnh PHP, để đọc và xóa tệp, sẽ gọn gàng hơn để viết lại tiêu đề bằng

Download the pdf
0. Điều này sẽ giữ một url "đẹp" (
Download the pdf
1 thay vì
Download the pdf
2).Shivek Parmar

Đã trả lời ngày 9 tháng 2 năm 2012 lúc 10:242 gold badges33 silver badges42 bronze badges

Rob Wrob w

Download the pdf
4

Tôi đã tìm thấy một cách để làm điều đó với HTML cũ và JavaScript/jQuery đơn giản, suy thoái một cách duyên dáng. Được thử nghiệm trong IE7-10, Safari, Chrome và FF:

HTML cho liên kết tải xuống:

JQuery (mã JavaScript thuần túy sẽ có nhiều dòng chảy hơn) mô phỏng việc nhấp vào liên kết sau một độ trễ nhỏ:

Để làm cho điều này mạnh mẽ hơn, bạn có thể thêm phát hiện tính năng HTML5 và nếu nó không ở đó thì hãy sử dụng

Download the pdf
3 để mở một cửa sổ mới với tệp.14 gold badges77 silver badges92 bronze badges

Đã trả lời ngày 6 tháng 8 năm 2013 lúc 14:59Jun 21, 2012 at 2:15

Alex Walex wSaill

36.1K12 Huy hiệu vàng101 Huy hiệu bạc109 Huy hiệu đồng2 bronze badges

Đây là chìa khóa:

Ứng dụng loại nội dung/X-PDF-DOCUMENT hoặc Ứng dụng/PDF được gửi trong khi gửi tệp PDF. Adobe Reader thường đặt trình xử lý cho loại MIME này để trình duyệt sẽ chuyển tài liệu cho Adobe Reader khi nhận được bất kỳ loại MIME PDF nào.

Download the pdf
5

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 7:27

Đột nhiên defsudden def

Đã trả lời ngày 29 tháng 11 năm 2016 lúc 16:52Nov 29, 2016 at 16:52

Trong một ứng dụng Ruby on Rails (đặc biệt là với một cái gì đó như Prawn Gem và plugin Prawnto Rails), bạn có thể thực hiện điều này đơn giản hơn một chút so với tập lệnh đầy đủ (như ví dụ PHP trước đó).

Trong bộ điều khiển của bạn:

Download the pdf
6

Kết xuất: Bố cục => Phần sai cho trình duyệt mở ra "Bạn có muốn tải xuống tệp này không?"nhắc nhở thay vì cố gắng hiển thị PDF.Sau đó, bạn sẽ có thể liên kết đến tệp bình thường: http://mysite.com/myawesmepdf.pdf

Đã trả lời ngày 13 tháng 12 năm 2008 lúc 7:49Dec 13, 2008 at 7:49

BTWBTWbtw

6.8969 Huy hiệu vàng39 Huy hiệu bạc40 Huy hiệu đồng9 gold badges39 silver badges40 bronze badges

3

Tôi đã giải quyết của tôi bằng cách sử dụng toàn bộ URL của tệp PDF (thay vì chỉ đặt tên tệp hoặc vị trí vào href): a href = "miền. Com/pdf/fileName.pdf"

Đã trả lời ngày 5 tháng 6 năm 2017 lúc 11:05Jun 5, 2017 at 11:05

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

Nếu bạn cần giới hạn tốc độ tải xuống, hãy sử dụng mã này !!

Download the pdf
7

Để biết thêm thông tin, bấm vào đây

Đã trả lời ngày 6 tháng 2 năm 2019 lúc 5:30Feb 6, 2019 at 5:30

Hướng dẫn how do i make a pdf downloadable in html? - làm cách nào để tạo một bản pdf có thể tải xuống bằng html?

Download the pdf
8

Đã trả lời ngày 6 tháng 2 năm 2019 lúc 8:38Feb 6, 2019 at 8:38

1