Php 下载脚本有些奇怪
你好 只是下载脚本有问题。现在的问题是,每当我试图下载一个文件时,都是download.php获取的,而不是MS Excel文件本身。虽然在下载过程中,它显示了图标,甚至我试图下载的文件是excel格式的应用程序。但我不明白的是,我一下载它,它就会变成一个空的download.phpPhp 下载脚本有些奇怪,php,mysql,excel,Php,Mysql,Excel,你好 只是下载脚本有问题。现在的问题是,每当我试图下载一个文件时,都是download.php获取的,而不是MS Excel文件本身。虽然在下载过程中,它显示了图标,甚至我试图下载的文件是excel格式的应用程序。但我不明白的是,我一下载它,它就会变成一个空的download.php <?php if(isset($_GET['id'])) { $id = $_GET['id']; $query = "SELECT file_name, file_type, file_si
<?php
if(isset($_GET['id']))
{
$id = $_GET['id'];
$query = "SELECT file_name, file_type, file_size, content
FROM upload WHERE upload_id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
ob_clean();
flush();
echo $content;
mysql_close();
exit;
}
?>
以下是我调用下载的代码:
<?php
$up = mysql_query("SELECT * FROM upload");
$CountRow=0;
while($cr = mysql_fetch_array($up))
{
echo "<div style='float:left; '>";
echo "<p style='padding:5px; margin:5px; border:1px solid #ccc; '>";
echo "<a href='rental/download.php?id=".$cr['upload_id']."'><img src='images/icon.png'> </a>"." "."<a href='download.php?id=".$cr['upload_id']."'>".$cr['file_name']." "."</a>";
echo "</p>";
echo "</div>";
}
$CountRow++;
?>
这是download.php
<?php
if(isset($_GET['id']))
{
$id = $_GET['id'];
$query = "SELECT file_name, file_type, file_size, content
FROM upload WHERE upload_id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
ob_clean();
flush();
echo $content;
mysql_close();
exit;
}
?>
我该怎么办?我想知道出了什么问题……使用标题的内容配置:附件;文件名='$姓名
此外,尝试使用单引号和串联字符串,而不是双引号。双引号类似于eval,如果您真的不需要,则不建议使用双引号
另外,将PDO用于数据库访问,或者至少使用mysqli,并在将输入包含到SQL查询之前对其进行清理。或者“download.php?id=1”;删除表格用户;-我会抓住你的 将文件名更改为文件名使用标题内容处置:附件;filename=$name;谢谢你的帮助。我试图更改代码,但到目前为止它确实下载了该文件。但我遇到了另一个问题。下载过程完成后,文件将自动打开,当您检查下载文件夹或存储文件的任何文件夹时,文件似乎不在任何地方,好像没有下载过。我缺少什么吗?这是你浏览器的一个功能。有些会尝试自动打开。尝试右键单击并另存为以下载到磁盘。也可以尝试不同的浏览器,看看有什么不同。我接受了你的建议。这一次我用谷歌浏览器看看它是否工作正常。它确实保存了,但文件没有显示excel的图标,而只是一个纸质图标。当我试图打开它时,什么也没发生。firefox也是如此。这是我下载它时的样子。纸质图标是我检查保存它的文件夹时的样子。数据库中文件名的值是多少?它需要有正确的Excel扩展名,并且该扩展名需要与Excel关联才能工作。