Модераторы: Illuminaty

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция сохранить 
V
    Опции темы
lorents
Дата 20.3.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



как можно вызвать окно которое не картинке и сохранить какой-то pdf-файл на компьютер?

user posted image


--------------------
PM MAIL   Вверх
Logo
Дата 21.3.2009, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Цитата(lorents @ 20.3.2009,  23:44)
как можно вызвать окно которое не картинке и сохранить какой-то pdf-файл на компьютер?

user posted image

А которое окно  smile? Вид системного окна определяется, естесно, настройками пользователя.
PM MAIL   Вверх
lorents
Дата 21.3.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



Logo,

Цитата(Logo @  21.3.2009,  00:18 Найти цитируемый пост)
А которое окно  smile? Вид системного окна определяется, естесно, настройками пользователя. 

 smile , ладно а если серьезно как такое окно открыть?


--------------------
PM MAIL   Вверх
bars80080
Дата 21.3.2009, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



имхо, система, которая может просматривать файлы пользователя - удел ActiveX, возможно там даже есть какой системный вызов. но работать будет только в ИЕ

второй момент, что это окно может открыться само, если настройки браузера выставлены так. в этом случае ссылка на файл самая обычная
но может и не открыться, этот процесс ничем не проконтроллируешь
PM MAIL WWW   Вверх
lorents
Дата 21.3.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



Цитата(bars80080 @  21.3.2009,  02:25 Найти цитируемый пост)
второй момент, что это окно может открыться само, если настройки браузера выставлены так. в этом случае ссылка на файл самая обычная
но может и не открыться, этот процесс ничем не проконтроллируешь 

интересно, 
а если сделаем по другому, как можно предложить юзеру сохранить pdf-файл на компьютер (не открыть его)
вот зашел юэер на страницу и ему сразу предложили сохранить этот файл
P.S.: в данный момент меня интересует чисто IE

Добавлено через 57 секунд
или это тоже может не выйти


--------------------
PM MAIL   Вверх
bars80080
Дата 21.3.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



насчёт пдф поведение браузеров двояко. если они не знают этот формат, то при переходе по ссылке _http://server.ru/file.pdf в ИЕ выскакивает окошко с предложением открыть в некой проге файл, либо сохранить на компе, а далее это окно. но по факту acrobat reader почти всегда присутствует на компе пользователя и такой файл сразу открывается в браузере. в этом случае сохранять файлы удаётся правым кликом мышкой по ссылке и выбором пункта "сохранить как" в меню

что-то в таком роде


есть ещё один вариант. контролируемая передача файла. на php она выглядит так:

Код

$f = $dir.'/'.$file;
if(!file_exists($f)) { echo 'file is not exists'; exit; }

header('Content-Type: application/x-unknown; charset=cp1251');
header('Content-Disposition: attachment; filename='.$file);

$a = readfile($f);
exit;


таким образом он предлагает пользователю файл в виде неизвестного формата
из плюсов данного метода - мы можем разрешать скачивание только зарегестрированным пользователям (наваяв соответствующий скрипт выше по коду).
из минусов - лишнее напряжение сервера
PM MAIL WWW   Вверх
lorents
Дата 21.3.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



bars80080, 
Цитата(bars80080 @  21.3.2009,  11:25 Найти цитируемый пост)
есть ещё один вариант. контролируемая передача файла. на php она выглядит так:

а у тебя нет случайно примера полностью как мне сделать, т.е. зашел узер на страницу и ему предложили сохранить файл?

Это сообщение отредактировал(а) lorents - 21.3.2009, 12:03


--------------------
PM MAIL   Вверх
bars80080
Дата 21.3.2009, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



выглядит это так:

пользователь выполнил определённые требования (зарегестрировался, заплатил или что там нужно) ему выдаётся ссылка:
http://server.ru/script.php?passkey=j04t0934t
а в БД записывается информация: passkey, ip, filename, date
при переходе пользователя по ссылке извлекается информация из БД по passkey, проверяется ip и не устарела ли ссылка. далее по коду, что привёл выше файл считывается и немедленно выкидывается в браузер



если же все эти заморочки не нужны, то выглядит так:
ссылка http://server.ru/script.php?par1=files/mydocs/doc.pdf
Код

<?php

$file = '';
if(!empty($_GET['par1'])) { $file = $_GET['par1']; }

if(!file_exists($file)) { echo 'file is not exists'; exit; }

$p = pathinfo($file);
$f = $p['filename'];

header('Content-Type: application/x-unknown; charset=cp1251');
header('Content-Disposition: attachment; filename='.$f);

$a = readfile($file);
exit;
?>

PM MAIL WWW   Вверх
Logo
Дата 21.3.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Цитата

как можно вызвать окно которое не на картинке и сохранить какой-то pdf-файл на компьютер?

Из-за опечатки понял так smile
Чтобы сразу сохранить файл, надо задать левый content-type. Не обязательно через PHP это делать, можно в mod rewrite создать правило, без лишней нагрузки на сервер.
Создай в папке где лежит твой файл файл .htaccess со строкой
Код

AddType "application/x-unknown" .pdf

PM MAIL   Вверх
unicross
Дата 21.3.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 422
Регистрация: 15.6.2008

Репутация: 1
Всего: 53



Цитата(bars80080 @ 21.3.2009,  12:31)
если же все эти заморочки не нужны, то выглядит так:
ссылка http://server.ru/script.php?par1=files/mydocs/doc.pdf
Код

<?php

$file = '';
if(!empty($_GET['par1'])) { $file = $_GET['par1']; }

if(!file_exists($file)) { echo 'file is not exists'; exit; }

$p = pathinfo($file);
$f = $p['filename'];

header('Content-Type: application/x-unknown; charset=cp1251');
header('Content-Disposition: attachment; filename='.$f);

$a = readfile($file);
exit;
?>

bars80080, это потенциальная дыра в безопасности всей системы. Ни в коем случае нельзя передавать путь и расширение через параметры ссылки (формы)!!! Так можно прочитать любой файл в вашей системе...

Цитата(bars80080)
header('Content-Type: application/x-unknown; charset=cp1251');

Фрагмент "; charset=cp1251" здесь лишний. 
PM MAIL WWW   Вверх
lorents
Дата 21.3.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



Сейчас попробуем smile 


--------------------
PM MAIL   Вверх
lorents
Дата 21.3.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



не выходит, где я ошибся
адрес файла такой
file:///C:/Documents%20and%20Settings/Lorents.EXELERO/Рабочий%20стол/script.php?par1=doc.pdf
и IE предлагает мне скачать script.php, где я ошибся?



--------------------
PM MAIL   Вверх
lorents
Дата 21.3.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



unicross, 
Цитата(unicross @  21.3.2009,  12:56 Найти цитируемый пост)
это потенциальная дыра в безопасности всей системы. Ни в коем случае нельзя передавать путь и расширение через параметры ссылки (формы)!!! Так можно прочитать любой файл в вашей системе...

а как по другому?


--------------------
PM MAIL   Вверх
Logo
Дата 21.3.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Манипуляции, о которых тебе говорят производятся на сервере. Почитай статьи с основами, поставь денвер
А сделать лучше проще через .htaccess, как я написал выше.  
PM MAIL   Вверх
lorents
Дата 21.3.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 2.4.2008

Репутация: нет
Всего: нет



Logo, 

Цитата(Logo @  21.3.2009,  17:06 Найти цитируемый пост)
Манипуляции, о которых тебе говорят производятся на сервере. Почитай статьи с основами, поставь денвер

денвер есть, но мне надо это сделать не на сервере а на компьютере

Цитата(Logo @  21.3.2009,  17:06 Найти цитируемый пост)
А сделать лучше проще через .htaccess, как я написал выше.   

а твой способ мне подойдет?
я создал твой файл, а что дальше?

Это сообщение отредактировал(а) lorents - 21.3.2009, 17:13


--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.