doujing5726 2015-06-19 08:46 采纳率: 0%
浏览 18

PHP损坏的文件

This is the page where I click on the download button.

This is the things I found online but it did not work

why my downloaded file is alwayes damaged or corrupted?

Force Downloading a PDF file, corrupt file

$query = "SELECT id, name FROM docu";
$result = mysqli_query($con,$query) or die('Error, query failed');

if(mysqli_num_rows($result)==0){
    echo "Database is empty <br>";
}
else{
    while ( (list($id, $name) = mysqli_fetch_array($result, MYSQLI_BOTH))){
?>
<p><a href="download.php?id=<?= $id ?>">Name : <?= $name ?></a></p>

This is the download code. When I download the file, it say it is corrupted.

if(isset($_GET['id'])){
 $id    = $_GET['id'];

 $con = mysqli_connect("localhost:3306", "waduser", "waduser", "fyp");
if(!$con) {
  die("cannot connect: " . mysqli_error());
 }
 mysqli_select_db($con,"fyp");

 $query = "SELECT * FROM docu where id ='" .$id ."'";
 $result = mysqli_query($con,$query) or die('Error, query failed');
 if($row =  $result ->  fetch_array(MYSQLI_ASSOC))
 {
    $name = $row['name'];
    $type = $row['type'];
    $content = $row['content']; //content of file
    $size = $row['size']; //file size
    header('Content-Type:"' . $type . '"');
    header('Content-length:' . $size  .'');
    header('Content-Disposition: attachment; filename="' .$name. '"');

  } 
 }
?>
  • 写回答

1条回答 默认 最新

  • duanpo2813 2015-06-19 08:59
    关注

    I think what Jim is trying to say is that you have sent all the headers but you have not actually sent the file itself.

    So try

    $name = $row['name'];
    $type = $row['type'];
    $content = $row['content']; //content of file
    $size = $row['size']; //file size
    header('Content-Type:"' . $type . '"');
    header('Content-length:' . $size  .'');
    header('Content-Disposition: attachment; filename="' .$name. '"');
    echo $content;
    

    Also I think its safer to remove the spaces around your short_tag usage at least in the href property.

    <p><a href="download.php?id=<?=$id?>">Name : <?= $name ?></a></p>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100