2016-04-06 2 views
0

У меня есть этот скрипт для принудительной загрузки файла в php, но его не работает. файл все еще открывается на странице. Помогите мне понять, что не так.Force file download in php не работает

<?php 

$orderid=sql_prep($_GET['oid']); 

if(isset($_POST['file'])){ 

    $file = $_POST['file']; 

    header("Content-Description: File Transfer"); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-Type: application/octet-stream"); 
    header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
    readfile('attachments/'.$orderid.'/user/'.$file); 
} 
?> 

<form action="" method="POST" name="dwnld" > 
    <input name="file" value="<?php echo $file['filekey']; ?>" type="hidden"> 
    <button type="submit"> <?php echo $file['filename']; ?> </button> 
</form> 
+2

'die()' после 'readfile()'. NO OUTPUT после отправки файла – fusion3k

+0

он решен, еще? –

+0

это только файлы в формате pdf? или любые файлы типа –

ответ

0

Я думаю, что вы тестируете это в firefox или google chrome. Также вы пытаетесь загрузить файл pdf или txt, я надеюсь. В google chrome Adobe acrobot и в firefox adobe reader предустановлены плагины.

Таким образом, не имеет никакого отношения к PHP-коду для загрузки. Ваш код верен. Вы можете протестировать его, отключив acrobot в Google Chrome. для этого перейдите на chrome: // плагины/в хром. затем отключить Chrome PDF Viewer. Затем просмотрите ссылку для загрузки.

+0

, так как я могу запретить пользователю видеть это, если у них установлен предустановленный акробот и считыватель? – Khakali