|
|
|
|
|
для: Anwor
(28.07.2006 в 12:05)
| | А, всё, я разобрался!! Именно так в конце и выводим (это для потомков )))))))
Итак, полный код скрипта (отлаженный):
<?php
header("Content-Disposition: attachment; filename=".basename($_GET['path']));
header("Content-Type: application/octet-stream");
echo file_get_contents($_GET['path']);
unlink($_GET['path']);
?>
|
Таким образом, файл удаляется сразу, но только после того, как вышло окошко сохранения. Сохраняется правильно. Люди, не повторяйте наших ошибок )))))))
Cheops, спасибо Вам большое, вы меня очень, очень, оооочень выручили. | |
|
|
|
|
|
|
|
для: Anwor
(28.07.2006 в 12:04)
| | Понял насчет basename(), спасибо огромное.... но всё же хотелось бы еще избавиться от файла после его загрузки.. Можно ли после file_get_contents($file) вывести unlink($file)? Не запортит ли это чего? | |
|
|
|
|
|
|
|
для: cheops
(28.07.2006 в 11:58)
| | Да, у меня там не только имя. Путь примерно такой: "temp/file.pdf"
Спасибо большое! Это уже многое мне дает для "экспериментов" )))
Но если организовать всё как вы говорите, то сам downfile.php должен находиться в одном каталоге со всеми файлами, верно? Как бы мне этого избежать, а то я хотел еще запустить кроновский клинер, который периодически чистил бы каталог "temp/" от оставшихся там файлов... может, можно как-то сделать, чтобы файлу делался unlink прямо после загрузки?.. | |
|
|
|
|
|
|
|
для: cheops
(28.07.2006 в 11:58)
| | Извлечь имя файла из пути можно при помощи функции basename()
<?php
header("Content-Disposition: attachment; filename=".basename($_GET['path']));
?>
|
| |
|
|
|
|
|
|
|
для: Anwor
(28.07.2006 в 10:45)
| | Так, погодите, вы в строку
<?php
header("Content-Disposition: attachment; filename=".$_GET['path']);
?>
|
что передаёте? Путь? Это не правильно, здесь должно быть только имя файла, под которым он будет сохраняться у пользователя. Вот так вот правильно
<?php
header("Content-Disposition: attachment; filename=text.txt");
?>
|
а вот так
<?php
header("Content-Disposition: attachment; filename=test/text.txt");
?>
|
уже нет. | |
|
|
|
|
|
|
|
для: Anwor
(28.07.2006 в 10:45)
| | Мда, кроме всего прочего выяснилось, что файлы типа TXT сохраняются как downfile.txt! Вот теперь я окончательно запутался....... | |
|
|
|
|
|
|
|
для: cheops
(27.07.2006 в 22:22)
| | Это прямо на сервере. Скрипт выглядит именно так, 1 в 1. Вызывается с другой страницы заголовком
<?php
header("location: downfile.php?path=$path");
?>
|
при этом переменная $path на предыдущей странице алертом показывает абсолютно верный путь. Но когда происходит скачивание, то:
1) если файл бинарный и не может быть отображен, то в окошке пишет:
Имя файла: downfile
Тип файла: неизвестный
|
2) если файл может интерпретироваться (html, php, txt и пр.), то окошко такое:
Имя файла: downfile
Тип файла: htm
|
А родное имя с расширением по каким-то причинам не запоминает... ((( | |
|
|
|
|
|
|
|
для: Anwor
(27.07.2006 в 16:36)
| | Хм... и это в скрипте
<?php
header("Content-Disposition: attachment; filename=".$_GET['path']);
header("Content-type: application/octet-stream");
echo file_get_contents($_GET['path']);
?>
|
Вообще не должно бы быть такого... это на локальной машине или на сервере хостинга? | |
|
|
|
|
|
|
|
для: Anwor
(25.07.2006 в 17:27)
| | Cheops, пожалуйста, помогите мне разобраться с этой ситуацией, единственная препона осталась в сайте, никак не могу понять... заметил еще, что когда пытаюсь скачать с ФТП файл *.php, то он всё равно видит его как htm =( Может, он каким-то образом делает различия между бинарным типом и ASCII?? И почему он так упорно обзывает любой передаваемый файл именем передающего скрипта downfile?.... | |
|
|
|
|
|
|
|
для: cheops
(25.07.2006 в 15:02)
| | Да, извиняюсь, это я уже у себя исправил...
Всё равно та же ерундень. ((( Как же заставить его вспомнить реальное имя файла с расширением?? | |
|
|
|
|