Chúng tôi làm điều đó theo cách đó: Đầu tiên thêm kịch bản này.
<script type="text/javascript">
function populateIframe(id,path)
{
var ifrm = document.getElementById(id);
ifrm.src = "download.php?path="+path;
}
</script>
Nơi này, nơi bạn muốn nút tải (ở đây chúng tôi sử dụng chỉ là một liên kết):
<iframe id="frame1" style="display:none"></iframe>
<a href="javascript:populateIframe('frame1','<?php echo $path; ?>')">download</a>
File 'download.php' (cần phải được đặt trên máy chủ của bạn) chỉ đơn giản bao gồm:
<?php
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$_GET['path']);
readfile($_GET['path']);
?>
Vì vậy, khi bạn nhấp vào liên kết, iframe ẩn sẽ nhận/mở tệp nguồn 'download.php'. Với đường dẫn lấy tham số. Chúng tôi nghĩ đây là giải pháp tốt nhất!
Cần lưu ý rằng phần PHP của giải pháp này là một minh chứng đơn giản và có khả năng rất, rất không an toàn. Nó cho phép người dùng tải xuống bất kỳ tệp nào, không chỉ là một tập hợp được xác định trước.Điều đó có nghĩa họ có thể tải về các bộ phận của mã nguồn của trang web riêng của mình, có thể chứa thông tin API, vv
khi nó sẽ được an toàn để loại bỏ các iframe từ DOM? – AMember