gpt4 book ai didi

php - 下载代码(readfile)给了我一个空的或损坏的文件

转载 作者:行者123 更新时间:2023-12-04 06:10:10 25 4
gpt4 key购买 nike

我正在尝试构建一个下载页面,该页面通过从数据库中获取文件信息来获取文件 ID 并生成下载链接

它有点工作!出于某种原因,我从这个页面得到了一个文件,但它不是一个真正的文件!
例如,当我将图片 ID 发送到此页面时,图片将被下载,但无法打开,而且它的大小确实比实际大小要小

这是我的代码

  <?php
require_once('class/comon.php');
require_once('class/db.php');

$file_id = isset($_GET['id']) && (int)$_GET['id'] != 0 ? (int)$_GET['id'] : exit;
$file = comon::get_fileinfo('files' , 'id' , $file_id );
if(!$file) exit;

foreach($file as $file){
$location = $file['location'];
$filename = $file['file_name'];
}

$ext = end(explode('.' , $filename ));

header( 'Pragma: public' );
header( 'Expires: 0' );
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0' );
header( 'Cache-Control: private', false );
header( 'Content-Type: application/'.$ext);
header( 'Content-Disposition: attachment; filename="'. basename($filename) . '";' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Length: ' . filesize( 'http://localhost/Lancer/attach/'.$location.'/'.$filename ) );
readfile( 'http://localhost/Lancer/attach/'.$location.'/'.$filename );


?>

我已经在页面上打印了文件路径
echo 'localhost/Lancer/attach/'.$location.'/'.$filename;

然后我将输出放在 url 上,它显示了图片,所以这不是问题

最佳答案

看起来你想要 readfile('http://localhost/....')或文件的绝对本地文件路径。

要使用 URL 字符串,您需要为 readfile 提供协议(protocol)。

关于php - 下载代码(readfile)给了我一个空的或损坏的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com