我有一个文件上传,可以将图像上传到数据库,并且可以正常工作,但是我的下载无法正常工作,并且不会弹出错误,并且不确定为什么不正常。我的数据库表如下id,image,image_name和image为blob。
这是我的下载代码:
download.php
$connection = mysqli_connect($host, $user, $pass, $name);
if(isset($_GET['id'])){
$id = $_GET['id'];
$stat = $connection->prepare("SELECT * FROM image_centre where id=?");
$stat->bind_param('i',$id);
$stat->execute();
$data= $stat->fetch();
$file = 'images/'.$data['image_name'];
if(file_exists($file)){
header('Content-Description: '.$data['description']);
header('Content-Type: '.$data['type']);
header('Content-Disposition: '.$data['disposition'].'; image_name="'.basename($file).'"');
header('Expires: '.$data['expires']);
header('Cache-Control: '.$data['cache']);
header('Pragma: '.$data['pragma']);
header('Content-Length: '.filesize($file));
readfile($file);
exit;
}
}
下面是将download.php链接到的按钮
<td><a href="includes/download.php?id=<?php $IID?>" class="btn btn-primary">Download</a></td>
答案 0 :(得分:0)
要找出问题所在,可以(用于调试)
直接在浏览器中运行include / download.php?id = xx,即http://yourdomain.xx/includes/download.php?id=20(从您知道有效的数据库中找到一个ID)
将else语句添加到if语句中,并打印出一些调试信息,例如:
if(file_exists($file)){
// Your code
}
else {
print "The file does not exist there";
}
if (is_array($data = $stat->fetch())) {
// Record found, check if file exist and send file...
}
else {
print "No record found";
}
基本上,找出失败的地方...