Download картинки по ссылке... @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 18 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Заголовок сообщения: Download картинки по ссылке...
Сообщение Добавлено: 25 Февраль 2005, 12:52:17 
Привет!
Задача такова:
есть картинка и под ней ссылка "Download". При нажатии на нее должно открыться окно для сохранения файла на жесткий диск, а не открытия самой картинки в браузере.
Как решить такую задачу?
mnemonic
новый человек
0
Сообщения: 55
Зарегистрирован: 15.02.05
Откуда: как все, из утробы
Сообщение Добавлено: 25 Февраль 2005, 13:08:05 
Решение в лоб - зиповать и отдавать zip.

_________________
http://sale.qpl.ru - профессиональная доска объявлений
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 13:18:07 
Об этом я думал, но не подходит...
Знатоки JavaScript! Может можно как то вызвать окно для сохранения. Есть же функция print();
mnemonic
новый человек
0
Сообщения: 55
Зарегистрирован: 15.02.05
Откуда: как все, из утробы
Сообщение Добавлено: 25 Февраль 2005, 13:49:35 

Amiddio1 писал(а):
Об этом я думал, но не подходит...
Знатоки JavaScript! Может можно как то вызвать окно для сохранения. Есть же функция print();


Причем здесь print()? Еще есть alert() - она тоже диалоговое окошко открывает :) Но это не повод ее здесь упоминать.

Браузер в большинстве случаев сам решает, что делать с файлом заданного MIME типа. А отдавать с другим MIME - глупо.

_________________
http://sale.qpl.ru - профессиональная доска объявлений
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 25 Февраль 2005, 13:58:00 
как-то это реализовано на mail.ru...

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 14:00:15 
… где именно? Я посмотрю...
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 25 Февраль 2005, 14:22:51 
средствами JavaScript это не реализуется.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 14:28:58 
Спасибо... тогда придется архивировать
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 25 Февраль 2005, 14:30:50 
нашел.

Код:
<?php
$name="kartinka.jpg";
header("Content-Type: application/force-download\r\n");
header("Content-Transfer-Encoding: binary\r\n");
header("Content-Length: ".filesize($name));
header("Content-Disposition: attachment; filename=$name\r\n");
readfile("$name");
?>


_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 25 Февраль 2005, 14:35:57 
НО!!! В начале файла не должно быть никаких пустых строк, а тем более никаких print'ов и echo'в!! Инача тип заголовока укажется автоматически как http!

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 25 Февраль 2005, 14:38:29 
в смысле, в начале этого РНР-скрипта...

оффтопик:
вышел новый Магазинчик БО!!! Прикольная серия, только короткая :(

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 14:57:00 
Файл сохраняется, но он имеет имя ПХП файла и без разширения. Только после добавления к нему .jpg открывается картинка.
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 14:59:16 
может нужны еще дополнительные Хедеры?
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 15:03:59 
… а зделал!

Надо добавть строчку:
header("Content-type: image/jpeg");
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 25 Февраль 2005, 15:25:58 
а вроде не надо..
потому что content-type уже указан. Может глючить.
у меня (через IE) нормально скачивается, с сохранением расширения.
там же есть строчка:
header("Content-Disposition: attachment; filename=$name\r\n");
она и указывает имя файла. Попробуй везде прописать его напрямую и потестить в таком режиме.
Да, и еще. Советую во время отладки каждый раз переименовывать скрипт (scr001.php, scr002.php и т.д.), потому что глюки могут возникать из-за кэширования.

з.ы. у тебя какой браузер?

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 25 Февраль 2005, 15:28:50 
...и переименуй пременную $name в какую-нибудь $dlfn (что-нибудь понепонятнее ;) ), потому что иногда из-за таких "простых" имен(name, this и т.п.) появляются какие-то непонятные неполадки.

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Amiddio1
новый человек
0
Сообщения: 8
Зарегистрирован: 21.02.05
Сообщение Добавлено: 25 Февраль 2005, 17:39:46 
без header("Content-type: image/jpeg"); у меня не работало. Тестировал в Эксплорере и Мозиле...

Конечная версия:

if ($_GET['dl_file']) {
$name = "path_to_file/".$_GET['dl_file'];
header("Content-Type: application/force-download\r\n");
header("Content-Transfer-Encoding: binary\r\n");
header("Content-Length: ".filesize($name));
header("Content-Disposition: attachment; filename=".$_GET['dl_file']."\r\n");
header("Content-type: image/jpeg");
readfile("$name");
exit();
}
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 26 Февраль 2005, 17:55:42 
"Или так" ©

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 18 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100