2015-03-06 2 views
-1

PHP сила загрузки файла не работает

<?php 
 
    if (isset($_GET['download'])) 
 
    \t \t { 
 
    \t \t \t $id=mysql_real_escape_string($_GET['download']); 
 
    
 
    \t \t \t $query1="SELECT * FROM files WHERE file_id='$id'"; 
 
      \t $doquery1= mysql_query($query1) or die(mysql_error()); 
 
      \t $count=mysql_num_rows($doquery1); 
 
    
 
    
 
      \t if ($count==1) 
 
    \t   \t { 
 
    \t   \t \t while ($result1=mysql_fetch_assoc($doquery1)) 
 
    \t \t    \t { 
 
    \t \t \t \t \t \t \t 
 
    
 
    \t \t    \t \t $f=$result1['floc']; 
 
    \t \t \t \t \t \t \t $filename = "/file"."$id"."-"."$f"; 
 
    \t \t \t \t \t \t \t $file="uploads".$filename; 
 
    \t \t \t \t \t \t \t 
 
    \t \t \t \t \t \t \t header('Content-Type: application/octet-stream'); 
 
    \t \t \t \t \t \t \t header('Content-Disposition: attachment;    filename="'.basename($file).'"'); 
 
    \t \t \t \t \t \t \t header('Content-Length: ' . filesize($file)); 
 
    \t \t \t \t \t \t \t readfile($file); 
 
    \t   \t } 
 
    \t \t \t \t } 
 
     
 
    \t \t }?>
с этим кодом, я в состоянии загрузить в порядке. но если я попытаюсь открыть загруженный файл, файл будет поврежден. любая проблема с кодом?

ответ

0

Просто убедитесь, что вы ничего не выводили до или после readfile. Прежде чем отправить ошибку о уже отправленных заголовках, если вы не используете буферизацию вывода (ob_start() в начале вашего скрипта). Всегда полезно добавить exit() после того, как вы прочтете файл, чтобы убедиться, что ничего непреднамеренно не добавлено к нему.

Смежные вопросы