2015-01-27 2 views
0

У меня есть файл на моем сайте перенесен с другого сервера.Скачать .sql.gz файл

Резервное копирование имеет формат .sql.gz, когда я загружаю файл через php-код, они не работают. Файлы загружаются, но повреждаются. Я на Windows PC, тогда как его работы на Linux

Пожалуйста, помогите мне, как я могу заставить их работать на окнах тоже, я использую следующий код:

$fileurl=$path."/mysql/03/mydb1.sql.bz2"; 

header("Content-Type: application/force-download"); 

header("Content-Type: application/octet-stream"); 

header("Content-Type: application/download"); 

header("Content-Description: Download SQL Export");     

header('Content-Description: File Transfer'); 

header('Content-Disposition: attachment; filename=test.sql.bz2'); 

header('Content-Length: ' . filesize($fileurl)); 

readfile($fileurl); 
+0

Возможно, возникли проблемы с несколькими заголовками 'Content-Type'. Попробуйте использовать только 'application/octet-stream'. Возможно, файл загружен правильно, но Windows не знает, что с ним делать после загрузки. –

+1

Это sql.bz2 или sql.gz? 'filename = test.sql.bz2' // Резервное копирование имеет формат .sql.gz? – Jonathan

+0

Удалено только с использованием файла приложения/октета-потока, загруженного, но все еще не работающего. –

ответ

0

Это код, я использую, чтобы передать файл через PHP.

<?php 

    // replacement function for mime type 
    if (!function_exists('mime_content_type')){ 
     function mime_content_type($file){ 
      ob_start(); 
      system('/usr/bin/file -i -b "' . realpath($file). '"'); 
      $type = ob_get_clean(); 

      $parts = explode(';', $type); 

      return trim($parts[0]); 
     } 
    } 

    // 
    $file_path = '/your/file/path/here.gz'; 

    // 
    header("Cache-Control: public, must-revalidate\n"); 
    header("Pragma: hack\n"); 
    header("Expires: " . gmdate("D, d M Y H:i:s", mktime(date("H") + 2, date("i"), date("s"), date("m"), date("d"), date("Y"))) . " GMT\n"); 
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 

    header("Content-Type: " . mime_content_type($file_path) . "\n"); 

    header("Content-Length: " . filesize($file_path) . "\n"); 

    $file_name = pathinfo($file_path); 

    header("Content-Disposition: attachment; filename=\"" . $file_name['basename'] . "\"\n"); 
    header("Content-Transfer-Encoding: binary"); 

    if ($fp=fopen($file_path, "r")){ 
     fpassthru($fp); 
    } 
?> 
Смежные вопросы