我有一个信息列表,其中有一个文件名超链接的字段。我希望用户在单击该文件时下载该文件。
那么,如何使用PHP单击文件名来下载文件?
我使用了代码如下的ajax进行了尝试,但未下载任何文件。
download.php
$filename = $_GET['val']; // Fetch the file info. $filePath = $_SERVER['DOCUMENT_ROOT'] . "/dfms/images/docs/".$filename; if(file_exists($filePath)) { $fileName = basename($filePath); $fileSize = filesize($filePath); // Output headers. header("Cache-Control: private"); header("Content-Type: application/stream"); header("Content-Length: ".$fileSize); header("Content-Disposition: attachment; filename=".$fileName); // Output file. readfile ($filePath); exit(); } else { die('The provided file path is not valid.'); }
javascript功能
<script> function Inint_AJAX() { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript alert("XMLHttpRequest not supported"); return null; }; function download(path,val) { var req = Inint_AJAX(); req.open("GET", path+"download.php?val="+val); //make connection //req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header req.send(null); //send value req.onreadystatechange = function () { if (req.readyState==4) { if (req.status==200) { } } }; } </script>
链接下载
<a href="javascript:download('http://localhost/project/images/','DMS.doc');">DMS.doc</a>
最简单的方法应该是链接到它。
<a href="download.php?......" target="_blank">DMS.doc</a>