[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выбор пути, при скачивании файла
zvezda_t
Всем привет!

Когда на моём сайте, пользователь нажимает на кнопку "скачать", открывается стандартное окно: "открыть в/сохранить".
Если нажать "Сохранить", то файл тут же сохраняется на диск C:/ в каталог "Загрузки".

Подскажите, пожалуйста, как сделать, чтобы пользователь мог выбрать свой каталог, для сохранения файла?

Функция, которая отправляет файл в браузер:

if(file_exists($file)){  

header('Content-Description: File Transfer');
header('Content-Type: '.$mimes);
header('Content-Disposition: inline; filename='.basename($file));//header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Length: ' . filesize($file));
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: private',false);

ob_clean();
flush();

readfile($file);
}


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
McLotos
http://habrahabr.ru/post/151795/
http://sitear.ru/material/php_skript_download_file

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
T1grOK
Темой не интересовался, но думаю в целях безопасности такое сделать нельзя, только путем настройки самого браузера или через ухищрения(flash).
Если ошибаюсь, поправьте.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
McLotos
T1grOK
по-моему браузер по умолчанию должен спрашивать куда качать. а не тупо закидывать файл в каталог по умолчанию. Хотя самый лучши в мире браузер GoogleChrome не спрашивает, что тоже правильно, он либо качает в папку Загрузки которая под это и заточена, либо в ту папку, которая была указана в настройках.
Но вот раз уж появляется окно с кнопочками "Сохранить", "Открыть". то в таком случае при клике на кнопке "Сохранить" должно открываться диалоговое окно в котором можно выбрать путь сохранения, но такое я в хроме не видел, помню только в IE, Opera и Firefox такое было, хотя последние версии оперы делались на движке хрома, а Firefox перестал спрашивать это где-то 2 версии назад

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
zvezda_t
SergeySA, извини, я что то не поняла...
Так мой скрипт, верный? Ничего исправлять не нужно?
Просто это сам браузер не позволяет каталог выбрать, так что ли? (я использую firefox)


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
McLotos
zvezda_t
я протестировал этот скрипт в своём Chrome он вообще просто открыл мне файл. вместо того чтобы его качать. Кстати, как генерируется ссылка на скачивание?
как-то так?

<a href="$address" type="application/file">Ссылка</a>
$address - это не путь к файлу, а вызов скрипта. чтобы спрятать реальное расположение файла на сервера

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
zvezda_t
у меня методом Post отправляется, так как имя файла содержит русские буквы, то по ссылке не хочет открываться у меня. Важный момент: использую фреймворк Codeigniter.
Если бы была просто ссылка, можно было бы правой кнопкой сохранять (сохранить как и всё :) ).

<form action="/patch/to/function/" method="Post">
<input
type="submit" value="скачать">
<input
type="hidden" name="name_file_rus" value="<?=$name_file?>">
</form>


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
McLotos
Может над этим может поработать JS? он же как бы работает в клиентской части, а значит может заставить браузер при клике по ссылке выдать окно сохранения файла

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
zvezda_t
SergeySA, научите пожалуйста, как это сделать?


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
McLotos
Ну например для IE пойдет вот так вариант
onclick="javascript:document.execCommand('SaveAs','1','путь к файлу')
для всех остальных браузеров сейчас поковыряюсь

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.