Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: SaveFile ?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ДАГ
Отправлено: 03 Октября, 2007 - 12:54:17
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




Доброго времени суток.
Есть необходимость сохранять некоторые данные, выбранные запросом из Oracle, в выбранный пользователем файл.
Подскажите, пожалуйста, как в HTML и/или PHP вызвать стандартный виндовский диалог "Сохранить как" и соответственно узнать полное имя файла, которое указал пользователь?
 
 Top
EuGen Администратор
Отправлено: 03 Октября, 2007 - 13:54:10
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Отработав данные из запросов, можно делать это например так:
PHP:
скопировать код в буфер обмена
  1.  
  2. //$content-type - собственно тип содержимого,
  3. //$content - само содержимое
  4. header('Content-Description: File Transfer');
  5. header('Content-type: $content_type');
  6. echo($content);
  7.  

После этого браузер задаст вопрос - а что собственно делать с файлом, открыть его или сохранить куда-то. Это, конечно если я правильно понял задачу и она состоит в том, чтобы при обращении к скрипту сохранять сгенеренные им данные куда-то.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ДАГ
Отправлено: 04 Октября, 2007 - 05:53:00
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




to EuGen
Да, примерно это мне и надо! Немного подшаманив сделал так:

echo "Данные для сохранения в файл";
header('Content-Disposition: attachment; filename="out_file.txt"');

Спасибо!
 
 Top
Джур
Отправлено: 04 Октября, 2007 - 07:36:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




ДАГ пишет:
echo "Данные для сохранения в файл";
header('Content-Disposition: attachment; filename="out_file.txt"');

Боже, нарушение основ РНР. Улыбка


-----
Тамбовский каджит тебе товарищ
 
 Top
EuGen Администратор
Отправлено: 04 Октября, 2007 - 09:21:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




ДАГ пишет:
to EuGen
Да, примерно это мне и надо! Немного подшаманив сделал так:

echo "Данные для сохранения в файл";
header('Content-Disposition: attachment; filename="out_file.txt"');

Спасибо!

Ну таким образом Вы, во-первых, нарушаете одну из основных заповедей (* - не отсылай хеадеры если вывод уже начался ((* ..
и во-вторых, таким хеадером Вы жестко указываете имя файла, а я так понял, что частью задачи является сохранение данных в произвольный файл


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ДАГ
Отправлено: 05 Октября, 2007 - 11:50:15
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




EuGen пишет:
Ну таким образом Вы, во-первых, нарушаете одну из основных заповедей (* - не отсылай хеадеры если вывод уже начался ((* ..
и во-вторых, таким хеадером Вы жестко указываете имя файла, а я так понял, что частью задачи является сохранение данных в произвольный файл


Почему не отсылать хеадеры, когда вывод уже начался? Чем это чревато? Пока вроде все работает как надо!
Имя файла я указываю, но когда выскакивает диалог "Сокранить как" имя файла можно изменить. Хотя в моем случае мне его изменять вовсе и не требуется. Требуется только сохранять его куда-нибудь на флешку...
 
 Top
EuGen Администратор
Отправлено: 05 Октября, 2007 - 12:25:21
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




"Плохого" ничего не случится (по крайней мере, на столько плохого, что скрипт упадет). А вот другое дело, что после начала вывода любой хеадер вообще нет смысла отсылать ((* .. он не будет восприниматься как хеадер и, если у вас включено

в начале скрипта, то вы увидите что-то наподобие
PHP:
скопировать код в буфер обмена
  1.  
  2. Warning: Could not send headers: headers already send ...
  3.  

Хотя, с другой стороны, если вас устраивает то, как это работает сейчас и вы не хотите вдаваться в подробности того, как это все работает((*


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ДАГ
Отправлено: 08 Октября, 2007 - 05:21:48
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




Т.е. если я напишу наоборот сначала
header('Content-Disposition: attachment; filename="out_file.txt"');
а потом
echo "Данные для сохранения в файл";
то все будет ОК?

И как это хеадер нет смысла посылать? Хоть и выскакивает ошибка "Warning: Could not send headers: headers already send ... ", но он ведь все равно посылается, т.к. если его вообще не посылать, то скрипт просто в браузере выводит "Данные для сохранения в файл" и не предлагает их сохранить
 
 Top
EuGen Администратор
Отправлено: 08 Октября, 2007 - 09:25:29
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Все хеадеры нужно отсылать до того, как Вы делаете какой-либо вывод. Соответственно если Вы передадите нужные хеадеры до того, как начнете вывод, это и будет правильно. Можете посмотреть:
http://php.su/functions/?header


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
ДАГ
Отправлено: 08 Октября, 2007 - 10:14:43
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2007  


Помог: 0 раз(а)




to EuGen
Понятно. Спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB