【发布时间】:2022-01-03 09:34:48
【问题描述】:
我有一个rest api,端点是getfilestart.php。它的作用是使用 PDO 在数据库中搜索文件名。如何获取文件并将其作为文件返回或使用邮递员或在浏览器中自动下载?我尝试了几种方法,但我无法获取文件。目录在../files/
这里是下载功能
public function downloadFile($param){
$base_url = $_SERVER['REQUEST_SCHEME']."://".$_SERVER['SERVER_NAME'];
$q = "SELECT * FROM data_file WHERE module_id = ". $param;
$stmt = $this->conn->prepare($q);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$filename = $row['file_name'];
$request_url = $base_url .'/mtc_project_server/files/'.$filename;
}
如果我转储 request_url 它的 http://localhost/mtc_project_server/files/mir4.PNG 这是实际文件。我如何使用休息下载它?我尝试做 cURL 和 file_get_contents 但仍然无法正常工作。提前致谢
【问题讨论】:
-
选项 1. 响应文件 URL(例如 - 作为 JSON .downloadURL 属性)并使用重定向到该 URL。选项 2. 使用 PHP
readfile()和header()到 force download。 -
哦。所以对于选项1,你的意思是我会返回一个网址?我认为选项2更好,您能给我举个例子吗? @vee
-
download use cURL 的示例。
-
试过卷曲,但我得到了
filestart文件名,@vee 大小为 0 字节。我用浏览器 -
强制下载代码已经在链接里了。 stackoverflow.com/questions/7263923/…
标签: php mysql api rest download