php
  • path
  • download
  • readfile
  • 2013-04-06 2 views 1 likes 
    1

    У меня есть очень простая настройка прятки скачать траекторией-скрипт так:Включая имя исходного файла в файле readfile?

    На index.html У меня по этой ссылке:

    <a href="savefile.php">save</a> 
    

    На savefile.php у меня есть этот кусок кода:

    $file = 'http://www.mysite.com/files/correct_horse_battery_staple.rar'; 
    header("Content-Type: application/force-download"); 
    @readfile($file); 
    

    Это делает, кажется, работает, но, к сожалению, он загружает файл как savefile.php, а не correct_horse_battery_staple.rar.

    Есть ли способ изменить не только имя файла, но и расширение?

    +3

    Попробуйте ['header ('Content-Disposition: attachment; filename =" correct_horse_battery_staple.rar "');'] (http://us.php.net/manual/en/function.header.php#example- 4365). Если ваше имя файла содержит символы, отличные от ASCII, его просмотр в браузерах будет более сложным. (Edit: также, используйте локальный путь к файлу, а не на основе 'http: //'.) – DCoder

    ответ

    2

    У меня была такая же проблема

    решаемая, как показано ниже:

    header("Content-Type: application/force-download"); 
    
    
    header('Content-Disposition: attachment; filename="'.$filename.'"'); 
    
    
    readfile($filename); 
    

    Я надеюсь, что это поможет у

    +0

    А, спасибо! (И я не могу даже выгнать вас, sry.) –

    +0

    ok! без проблем :) – Heberfa

    0

    Ваша ссылка идет на savefile.php, и браузер не получил другого файла, чем файла сохранения .php. Вам нужно добавить заголовок, как:

    header('Content-Disposition: attachment; filename="correct_horse_battery_staple.rar"'); 
    

    или лучше ...

    header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
    

    Надеются, что это помогает!

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