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

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

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

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

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

Это вопрос безопасности. Представьте - заходите на сайт, а он засыпает вас тысячей файлов... Поэтому и нет возможности работать напрямую с файловой системой.
...
Рейтинг: 0 / 0
24.03.2008, 06:21
    #35208679
html_lamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
авторА что еще за теги в 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
24.03.2008, 06:37
    #35208685
html,запись в файл
> Да и не хочется чтоб юзер сам шел в меню и жал сохранить как...
попробуй объект internetexplorer и его метод execwb
...
Рейтинг: 0 / 0
24.03.2008, 06:39
    #35208686
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
так вы отдаете в браузер html-страницу, а не текстовый файл. Нужно отдать непосредственно сам файл (в данном случае текст файла) без никаких тегов. Желательно предварительно установить еще и заголовок типа Content-Type: text/plain; charset="ваша_кодировка", чтобы в браузере не возникло случаем кракозябр вместо букв (не знаю правда, что из себя представляет среда разработки web-оболочки для оракла, поэтому говорю "желательно").
...
Рейтинг: 0 / 0
24.03.2008, 07:03
    #35208695
html_lamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
Вобщем сейчас у меня все выглядит примерно так (скрипт не полностью чтобы не слишком засорять):
Код: 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
24.03.2008, 07:11
    #35208700
html_lamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
Похоже этот вариант не пройдет, ведь сами условия (формировать текст или таблицу) проверяются уже после тега <body>, значит без никаких тегов отправлять данные не получится...
Код: plaintext
<%IF (v_txt is not null) or (v_tbl is not null) THEN%>
а эту проверку делать еще до <html>?...
т.е. если текст - формируем хтмл с контентом text/plain, если таблица для просмотра - text/html ?
...
Рейтинг: 0 / 0
24.03.2008, 07:24
    #35208705
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
печатать теги <html>,<head>,<title>,<body> только если v_txt is null. Что касается заголовков - то в meta оставить так как есть, т.к. все равно не будет выводиться для текстового варианта. Имелась в виду установка заголовков с помощью какой-нибудь функции типа setHeader (если есть такая), а вообще и без этого должно нормально отображаться.
...
Рейтинг: 0 / 0
24.03.2008, 07:54
    #35208718
html_lamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
автор...установка заголовков с помощью какой-нибудь функции типа 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
24.03.2008, 08:22
    #35208734
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
попробуйте через name. Чтоб получилось в итоге Content-Type: text/plain; name="имя.txt"
...
Рейтинг: 0 / 0
24.03.2008, 08:30
    #35208743
html_lamer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
Код: 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
27.03.2008, 10:35
    #35216741
A34
A34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
html,запись в файл
У меня аналогичная проблема. Но есть вариации. Записать в файл данные с сервера Баз Данных (тоже Oracle) средствами mod_plsql - проблем не составляет. Но , т.к. файлов много , то хотелось бы предоставить возможность пользователю загрузить из в пакетном режиме , сразу все.
А не по одному натыкаясь при этом на диалоговую форму "Загрузка Файла" :
[Открыть] [Сохранить] [Отмена] .
есть ли такая возможность обойти эту форму, ну т.е. чтобы она невозникала и утветом по умолчанию всегда было - [Сохранить] ?

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

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

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

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

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

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

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


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