powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / html,запись в файл
22 сообщений из 22, страница 1 из 1
html,запись в файл
    #35208652
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
<input type="submit" name="v_txt" value="Save"</td>

Необходимо по нажатию на кнопку записать тхт-файл на клиенте. Подскажите, в какую сторону плыть.
...
Рейтинг: 0 / 0
html,запись в файл
    #35208662
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какими ресурсами на клиентской стороне Вы обладаете? Ибо средствами простого javascript, к примеру, доступ к файловой системе пользователя Вы не получите.
Если файл, который нужно сохранить, генерируется на сервере, то можно сохранять его на сервере, а потом отдавать в браузер (пусть пользователь сам сохраняет) или давать ссылку на этот файл (пусть пользователь сам скачивает).
...
Рейтинг: 0 / 0
html,запись в файл
    #35208669
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сохранять файл на сервере нельзя.
авторА какими ресурсами на клиентской стороне Вы обладаете?вопрос неясен.
Пробовал отдавать результат для записи в браузер - опера, например сохраняет в тхт-файл сам текст, как мне и надо, а вот IE - вместе с тегами. Да и не хочется чтоб юзер сам шел в меню и жал сохранить как...
Я в этом деле новичек, не знаю с какой стороны к этому вопросу подойти.
...
Рейтинг: 0 / 0
html,запись в файл
    #35208676
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
html_lamerСохранять файл на сервере нельзя.
авторА какими ресурсами на клиентской стороне Вы обладаете?вопрос неясен.

Вопрос отпадает. Теперь понимаю, что только браузер.

html_lamerПробовал отдавать результат для записи в браузер - опера, например сохраняет в тхт-файл сам текст, как мне и надо, а вот IE - вместе с тегами.
А что еще за теги в txt-файле?

html_lamerДа и не хочется чтоб юзер сам шел в меню и жал сохранить как...

Это вопрос безопасности. Представьте - заходите на сайт, а он засыпает вас тысячей файлов... Поэтому и нет возможности работать напрямую с файловой системой.
...
Рейтинг: 0 / 0
html,запись в файл
    #35208679
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторА что еще за теги в txt-файле?
Выдавал результат как страницу хтмл примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<html>
<head>
<title></title>
</head>
<body>
бла-бла-бла...
</body>
</html>
т.е. на странице виден текст "бла-бла-бла". Выбираю сохранить как тхт-файл, опера сохраняет в файле только "бла-бла-бла", а ИЕ сохраняет:
<head>
<title></title>
</head>
<body>
бла-бла-бла...
</body>
</html>
Если бы все браузеры как опера себя вели, то я бы остановился на этом варианте.
авторЭто вопрос безопасности. Представьте - заходите на сайт, а он засыпает вас тысячей файлов...
в принципе это не сайт как таковой, а web-обертка для оракла, использоваться будет сотрудниками компании в локальной сети.
...
Рейтинг: 0 / 0
html,запись в файл
    #35208685
> Да и не хочется чтоб юзер сам шел в меню и жал сохранить как...
попробуй объект internetexplorer и его метод execwb
...
Рейтинг: 0 / 0
html,запись в файл
    #35208686
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вы отдаете в браузер html-страницу, а не текстовый файл. Нужно отдать непосредственно сам файл (в данном случае текст файла) без никаких тегов. Желательно предварительно установить еще и заголовок типа Content-Type: text/plain; charset="ваша_кодировка", чтобы в браузере не возникло случаем кракозябр вместо букв (не знаю правда, что из себя представляет среда разработки web-оболочки для оракла, поэтому говорю "желательно").
...
Рейтинг: 0 / 0
html,запись в файл
    #35208695
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем сейчас у меня все выглядит примерно так (скрипт не полностью чтобы не слишком засорять):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<%@ page language="PL/SQL" %>
<%@ plsql procedure="Proc_rep" %>
<%@ plsql parameter="v_txt" type="varchar2" default="null" %>
<%@ plsql parameter="v_tbl" type="varchar2" default="null" %>
...
<%! v_date varchar2( 100 );%>

<%begin%>

<html> 
<head>
<title><%=v_date%></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<%IF (v_txt is null) and (v_tbl is null) THEN%> 
<form name="f1" method="GET" action="Proc_rep" >
 --тут форма с кнопками v_txt (выдать результаты текстом) и v_tbl (показать таблицу)
</form>
<%END IF;%>

<%IF (v_txt is not null) or (v_tbl is not null) THEN%> 
  <% report_utils.CREATE_PRICE(v_parent, to_date(v_to_date,'dd.mm.yyyy'), v_owner, v_store, v_price1, v_price2, v_price_type, v_currency, 0 , 0 );%>
  <%if (v_txt is not null) then%> --здесь нужно сформировать текст
    KodP;KodE;Name;Maker;Country;Price;Sklad;SrokG;Rprice;Zupack;NDS;Prim;Groups<BR>
  <%end if;%>
  <%if (v_tbl is not null) then%>  --здесь рисуем таблицу
   <p align="center"> <font size="5" color="blue" >Прайс-лист на <%=v_to_date%></font></p>
   <table width= 100 % class=table1>
      <tr align="center">
        <td width="80" class=td1><b>Код</td>
        <td class=td1><b>Наименование</td>
        <td width="200" class=td1><b>Производитель</td>
        <td width="50" class=td1><b>Цена</td>
        <td width="40" class=td1><b>Кор.</td>
        <td width="25" class=td1><b>НДС</td></b>
      </tr>
    </table>
  <%end if;%>
<%END IF;%>
</font>
</body>
<% end; %>
</html>
Как видите, контент задан один раз в начале скрипта. Из этого скрипта генерится процедура "Proc_rep", хранится на сервере. Возможно мне надо записывать в файл средствами PL/SQL, но подумал может можно по-другому.
...
Рейтинг: 0 / 0
html,запись в файл
    #35208700
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже этот вариант не пройдет, ведь сами условия (формировать текст или таблицу) проверяются уже после тега <body>, значит без никаких тегов отправлять данные не получится...
Код: plaintext
<%IF (v_txt is not null) or (v_tbl is not null) THEN%>
а эту проверку делать еще до <html>?...
т.е. если текст - формируем хтмл с контентом text/plain, если таблица для просмотра - text/html ?
...
Рейтинг: 0 / 0
html,запись в файл
    #35208705
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
печатать теги <html>,<head>,<title>,<body> только если v_txt is null. Что касается заголовков - то в meta оставить так как есть, т.к. все равно не будет выводиться для текстового варианта. Имелась в виду установка заголовков с помощью какой-нибудь функции типа setHeader (если есть такая), а вообще и без этого должно нормально отображаться.
...
Рейтинг: 0 / 0
html,запись в файл
    #35208718
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор...установка заголовков с помощью какой-нибудь функции типа setHeader
Да, нашел такую из оракловских, теперь алгоритм примерно такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
<%IF (v_txt IS NOT NULL) THEN%> 
   <%OWA_UTIL.MIME_HEADER('application/txt');%>
   <%OWA_UTIL.HTTP_HEADER_CLOSE;%>
--здесь формирую строки для тхт-файла
<%ELSE%>
   <%OWA_UTIL.MIME_HEADER('text/html');%>
   <%OWA_UTIL.HTTP_HEADER_CLOSE;%>
   --Здесь уже формирую все теги
<%END IF;%>
...
, в результате если формирую как текст, браузер предлагает открыть/сохранить файл на диске.
В принципе работает как надо, только имя файла предлагает по имени процедуры, хотелось бы предложить свое, т.е. у меня имя файла формируется динамически, как это можно осуществить?
...
Рейтинг: 0 / 0
html,запись в файл
    #35208734
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте через name. Чтоб получилось в итоге Content-Type: text/plain; name="имя.txt"
...
Рейтинг: 0 / 0
html,запись в файл
    #35208743
html_lamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
  OWA_UTIL.MIME_HEADER('application/txt',false,'windows-1251');
  htp.print('Content-Disposition:attachment;filename="'||f_name||'.txt"');
  OWA_UTIL.HTTP_HEADER_CLOSE;

так работает.
illion , спасибо за помощь.
...
Рейтинг: 0 / 0
html,запись в файл
    #35216741
A34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A34
Гость
У меня аналогичная проблема. Но есть вариации. Записать в файл данные с сервера Баз Данных (тоже Oracle) средствами mod_plsql - проблем не составляет. Но , т.к. файлов много , то хотелось бы предоставить возможность пользователю загрузить из в пакетном режиме , сразу все.
А не по одному натыкаясь при этом на диалоговую форму "Загрузка Файла" :
[Открыть] [Сохранить] [Отмена] .
есть ли такая возможность обойти эту форму, ну т.е. чтобы она невозникала и утветом по умолчанию всегда было - [Сохранить] ?

Вот изначальная формулировка этого вопроса на форуме.
http://sql.ru/forum/actualthread.aspx?tid=539999
...
Рейтинг: 0 / 0
html,запись в файл
    #35217657
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A34У меня аналогичная проблема. Но есть вариации. Записать в файл данные с сервера Баз Данных (тоже Oracle) средствами mod_plsql - проблем не составляет. Но , т.к. файлов много , то хотелось бы предоставить возможность пользователю загрузить из в пакетном режиме , сразу все.
А не по одному натыкаясь при этом на диалоговую форму "Загрузка Файла" :
[Открыть] [Сохранить] [Отмена] .
есть ли такая возможность обойти эту форму, ну т.е. чтобы она невозникала и утветом по умолчанию всегда было - [Сохранить] ?

Вот изначальная формулировка этого вопроса на форуме.
http://sql.ru/forum/actualthread.aspx?tid=539999
это можно сделать, настроив браузер пользователя.
Вы можете пересмотреть интерфейс. Например сделать чекбоксов, и одну кнопку загрузить(сжатые в архичик файлы).
...
Рейтинг: 0 / 0
html,запись в файл
    #35217717
A34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A34
Гость
LINUXER A34У меня аналогичная проблема. Но есть вариации. Записать в файл данные с сервера Баз Данных (тоже Oracle) средствами mod_plsql - проблем не составляет. Но , т.к. файлов много , то хотелось бы предоставить возможность пользователю загрузить из в пакетном режиме , сразу все.
А не по одному натыкаясь при этом на диалоговую форму "Загрузка Файла" :
[Открыть] [Сохранить] [Отмена] .
есть ли такая возможность обойти эту форму, ну т.е. чтобы она невозникала и утветом по умолчанию всегда было - [Сохранить] ?

Вот изначальная формулировка этого вопроса на форуме.
http://sql.ru/forum/actualthread.aspx?tid=539999
это можно сделать, настроив браузер пользователя.
Вы можете пересмотреть интерфейс. Например сделать чекбоксов, и одну кнопку загрузить(сжатые в архичик файлы).

Браузер у пользователей будет IE.
Настройка его , я так понял , в части безопасности ?
Что-то я не нашел таких. :(
Включил вот это :
Загрузка->Автоматические запросы на загрузку файлов->Разрешить(*)

Надо , где-то еще настраивать IE ?

По поводу сжатия в "архивчик" . На серверной стороне пока не знаю как это сделать.
На клиенте JavaScript-ом это возможно ?
...
Рейтинг: 0 / 0
html,запись в файл
    #35219487
A34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A34
Гость
Кстати, может кто-нибудь подскажет как "на лету" в JavaScript можно заархивировать данные ?
...
Рейтинг: 0 / 0
html,запись в файл
    #35219494
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никак
...
Рейтинг: 0 / 0
html,запись в файл
    #35219737
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теоретически можно, практически смысла в этом никакого.
...
Рейтинг: 0 / 0
html,запись в файл
    #35220340
A34
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
A34
Гость
AntonariyТеоретически можно, практически смысла в этом никакого.
Вообще то в чисто практическом смысле надо не "архивировать на лету", а загрузить пакетом все файлы с сервера на клиента. Чтобы пользователь не спотыкался при каждой загрузке, отвечая на вопрос ИЕ.
"Архивирование на лету" - возникло как вариант для решения этой проблемы. Т.е. на сервере данные архивируются - а уже потом единым блоком их получаем на клиенте.
...
Рейтинг: 0 / 0
html,запись в файл
    #35220882
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
A34
Надо , где-то еще настраивать IE ?
Настройка его , я так понял , в части безопасности ?

ну возни там много ...
нужно разрешить ActiveX.
И написать свой компонентик, в котором уже можно всё что угодно.
либо научиться вытягивать байты через XMLHttpRequest и написать всё на JScript, через FileSystemObject
...
Рейтинг: 0 / 0
html,запись в файл
    #35221495
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LINUXER
нужно разрешить ActiveX.
И написать свой компонентик, в котором уже можно всё что угодно.
либо научиться вытягивать байты через XMLHttpRequest и написать всё на JScript, через FileSystemObject
судя по тому, как A34 уверенно утверждает, что все будут пользоваться IE и как лихо он взялся за настройки безопасности браузера (а их придется понижать - что не есть хорошо, особенно если имеется выход в инет), то можно действительно использовать FileSystemObject. В принципе даже XMLHttpRequest не нужен - сгенерить страницу с набором js-объектов со всей нужной инфой и потом писать файлы. Только слишком уж сильно это решение зависит от независящих от разработчика условий.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / html,запись в файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]