powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Что может "вернуть" файл/страница csp или zen?
20 сообщений из 20, страница 1 из 1
Что может "вернуть" файл/страница csp или zen?
    #37059265
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что может "вернуть" файл/страница csp или zen?
Пока знаю что хтмл-разметку или результат работы веб-сервиса...

А вот например картинку? Для примера:

Код: plaintext
1.
2.
3.
4.
5.
6.
div.csp {
   background: url('test.csp');
}
div.cls {
   background: url('test.cls');
}

Или чего еще... Может кто что уже делал?
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
Cache for Windows (x86-32) 2009.1.3 (Build 704_0_9104) Mon Mar 8 2010 19:31:10 EST
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37059511
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинку можно, документы офиса, причем генеренные, причем не документы а какие-нибудь суррогаты (XML,HTML,CSV), бинарные файлы и т.д., что вашей душе угодно.

Чтобы браузер не пытался воспроизвести это как HTML нужно поправить заголовки в методе OnPreHTTP()
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37059536
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также CSP может быть что-то прокси-страницы к другим сервисам, т.е. пользователь работает в одним сервером, а сам сервер каше запрашивает данные с других серверов, у нас так, например, отчеты закрыты.

Вот класс, которые отдает файлы с диска пользователю, я его порежу маленько, но суть понятна
Код: 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.
Class csp.reports.downloader Extends %CSP.Page
{

Parameter CHARSET = "CP1251";

ClassMethod OnPreHTTP() As %Boolean
{
	s filename=%request.Get("filename")
	s filetype=$p(filename,".",$l(filename,"."))
	d %response.SetHeader("Content-Disposition","attachment;filename="""_filename_"""")
	s %response.HeaderCharSet ="windows-1251"
	s %response.Expires = "Thu, 01 Apr 2003 00:00:00 GMT"

	s:filetype="xls" %response.ContentType="application/x-msexcel"
	s:filetype="xml" %response.ContentType="application/x-msexcel"
	s:filetype="txt" %response.ContentType="text/plain"
	s:filetype="log" %response.ContentType="text/plain"

 	/*вырезана проверка аутентификации*/
	if (userid="") 
          {s %response.Status="401 Unauthorized"
	q  1 
         }
 q  1 
}

ClassMethod OnPage() As %Status
{
 /*проверка аутентификации*/ 
 q:uid=""  500  
 s dir1=/*откуда-то берем*/
 s filename=dir1_%request.Get("filename")
 s file=##class(%Library.File).%New()
 s file.Name=filename
 d file.Open("RF:32000")

 ;d file.OutputToDevice()
 while 'file.AtEnd {w file.Read(32000)} 
 q  1 
}
}
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37059945
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Картинку можно
А примерчик какой можно? Или ссылочки...
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37059946
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.я его порежу маленько, но суть понятна
Что-то не совсем... А почитать чего про это есть? На русском бы...
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060187
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ээм, а что, собственно, не понятно?
Вебсервер отдает поток данных клиенту, серверу без разницы, HTML это, картинка, документ и т.д., для клиента разница заключается в заголовках документа. Т.е. CSP воспринимается как HTML только благодаря заголовкам.
Меняем заголовки - и можем получить любой другой тип данных.

>Что-то не совсем... А почитать чего про это есть? На русском бы...
Читать тут можно только про заголовки, в принципе я не заморачиваюсь и сам в целом о них не читал, только о тех что нужно.
Вот, например, http://ru.wikipedia.org/wiki/Список_заголовков_HTTP

>>Картинку можно
>А примерчик какой можно? Или ссылочки...
Картинку можно взять из потока, хранящегося на сервере,
или с диска,
или сгенерить самому (это я не пробовал, хотя сгенерить BMP файл совсем не сложно, если сильно интересно, можно и сделать).
Вам что именно интересно?

Мой пример в предыдущем посте сделан так, что браузер файл будет предлагать сохранить на диск.
Примерно такой тег должен быть:
<a target=_blank href='/myapp/csp.reports.downloader.cls?filename=log1.log' >Посмотреть лог</a>
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060188
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, еще.
На практике HTTP заголовками обычно заморачиваются PHP программисты, так что примеры надо искать на их языке.
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060246
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. , направления понятны, спасибо. Пока интерес был чисто теоретический...
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060255
Turk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.Вот класс, которые отдает файлы с диска пользователю, я его порежу маленько, но суть понятна
К сожалению, не все браузеры/web-серверы работают одинаково, поэтому нужно чуть расширить код. Вот мой рабочий пример:
+
Код: 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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
Class csp.downloadfile Extends %CSP.Page [ ProcedureBlock ]
{

Parameter ENCODED =  0 ;

ClassMethod OnPreHTTP() As %Boolean
{
	f {
		s FullFileName = $g(%request.Data("FullFileName", 1 ))
		if (FullFileName = "") || ('##class(%File).Exists(FullFileName))
		{
			s %response.Status = "404 Not Found"
			q
		}
		#;
		s ContentType = $g(%request.Data("ContentType",1))
		s:(ContentType="") ContentType = "application/octet-stream"
		s filename = $g(%request.Data("filename",1),"")
		s:(filename="") filename = ##class(%File).GetFilename(FullFileName)
		s Descript = $g(%request.Data("Descript",1))
		s:(Descript="") Descript = filename
		#;
		s Stream = ##class(%FileBinaryStream).%New()
		s Stream.Filename = FullFileName
		#;
		s userAgent = %request.UserAgent
		if ($f(userAgent,"MSIE") > 0)
		{
			s %response.NoExp=1 //"0"
			d %response.SetHeader("Pragma","public")
			d %response.SetHeader("Cache-Control","must-revalidate, post-check=0, pre-check=0")
			#; for IE8:
			//d %response.SetHeader("X-Content-Type-Options","nosniff")
			//d %response.SetHeader("X-Download-Options","noopen")
		}
		s:(ContentType'="") %response.ContentType = ContentType
		d %response.SetHeader("Content-Disposition","attachement; filename="_$zcvt($zcvt(filename,"O","UTF8"),"O","URL"))
		d %response.SetHeader("Content-Description",Descript)
		d %response.SetHeader("Content-Length",Stream.Size)
		d %response.SetHeader("Content-Transfer-Encoding","binary")
		#;
		//d %response.SetHeader("CACHE-CONTROL","   ")
		#;
		d Stream.%Close()
		k Stream
		#;
		q
	}
	#;
	q $$$OK
}

ClassMethod OnPage() As %Status
{
	f {
		s FullFileName = $g(%request.Data("FullFileName", 1 ))
		if (FullFileName '= "")
		{
			s Stream = ##class(%FileBinaryStream).%New()
			s Stream.Filename = FullFileName
			d Stream.OutputToDevice()
			d Stream.%Close()
			k Stream
		}
		else
		{
			&html<
<HTML>
<HEAD>
<TITLE>Закачка файлов с web-сервера</TITLE>
<SCRIPT LANGUAGE=JavaScript>
function isOpera()
{
	var n = navigator;
	var _b = n.userAgent;
	var _c = n.appVersion;
	var tv = parseFloat(_c);
	//
	var isOpera = false;
	if(_b.indexOf("Opera") >= 0)
	{
		isOpera = tv;
	}
	//
	return isOpera;
}
function GetFile(uploadTarget)
{
	var objFullFileName = document.getElementById('FullFileName');
	var objContentType = document.getElementById('ContentType');
	var objFilename = document.getElementById('filename');
	var objDescript = document.getElementById('Descript');
	//
	var url = "#(..Link(%request.PageName))#";
	url += (url.indexOf("?") < 0) ? "?" : "&";
	url += "FullFileName=" + encodeURIComponent(objFullFileName.value);
	url += "&ContentType=" + encodeURIComponent(objContentType.value);
	url += "&filename=" + encodeURIComponent(objFilename.value);
	url += "&Descript=" + encodeURIComponent(objDescript.value);
	//
	//alert(url);
	//
	if (uploadTarget == null)
	{
		window.open(url,'_blank');
	}
	else
	{
		var FR = document.getElementById(uploadTarget);
		if (!isOpera())
		{
			FR.src = url;
		}
		else
		{
			FR.contentWindow.document.location.href = url;
		}
	}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM method="GET" action="#(%request.PageName)#">
>
			w:(%session.UseSessionCookie'= 2 ) "<INPUT TYPE=hidden NAME=CSPCHD VALUE="""_%session.CSPSessionCookie_""">",!
			&html<
<TABLE>
<TR><TD>Полный путь к файлу</TD><TD><INPUT TYPE=text id='FullFileName' NAME=FullFileName VALUE=""></TD></TR>
<TR><TD>Тип содержимого</TD><TD><INPUT TYPE=text id='ContentType' NAME=ContentType VALUE=""></TD></TR>
<TR><TD>Отображаемое имя файла</TD><TD><INPUT TYPE=text id='filename' NAME=filename VALUE=""></TD></TR>
<TR><TD>Описание</TD><TD><INPUT TYPE=text id='Descript' NAME=Descript VALUE=""></TD></TR>
<TR><TD COLSPAN= 2 >
<INPUT TYPE=submit VALUE="Скачать (FORM)">
<INPUT TYPE=button VALUE="Скачать (window.open)" onClick="GetFile();">
<INPUT TYPE=button VALUE="Скачать (iframe)" onClick="GetFile('upload_target');">
</TD></TR>
</TABLE>
</FORM>
<IFRAME id='upload_target' NAME='upload_target' SRC='' STYLE='width:100%; height:100px; display:none'></IFRAME>
</BODY>
</HTML>
>
		}
		#;
		q
	}
	#;
	q $$$OK
}

}
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060293
Евегний
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток, так как вопрос схожий то размещу его здесь.
Есть тест сделаный на JavaScript с подсчетом около 20 параметров которые надо потом записать в БД, каким образом лучше всего это сделать?
У меня на уме пока только вариант создания CSP страницы посредством Cache studio с привязкой к искомым полям и потом вкручеванием в неё кода теста...
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060388
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евегний,

слабо понял, что вам нужно и как ваш вопрос связан с предыдущим обсужением.
В чем заключается проблема?
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060399
Евегний
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос: Как передать параметры из JS в БД?
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060415
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во!, так значительно лучше :-)

Либо гиперевентом, при этом страница не будет перегружена, либо субмитом формы, при этом страница обновится, либо произвольным URL с параметрами.
Гиперевенты:
http://localhost:57772/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_tagbased#GCSP_C149716

URL с параметрами (и формы также, по сути)
- формируете запрос типа
Код: plaintext
location.href='/myapp/testp.csp?param1= 1111 &param2= 3333 '
а в самой CSP ловите переданные параметры через
Код: plaintext
1.
2.
3.
<server>
w %request.Get("param1")
w %request.Get("param2")
</server>
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37060422
Евегний
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное! *низкий поклон*
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37061336
Евегний
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В процесе столкнулся с ещё одним путающим моментом.
переменная вычисляется джаваскриптом таким кодом:
Код: plaintext
var erm = GetSumOfAnswers("q1", "q4", "q32", "q58", "q60", "q70", "q75", "q84", "q92", "q111", "q127", "q132");
это форма ввода в csp странице:
Код: plaintext
<input type='text' name='erm' cspbind='erm' size=' 10 ' csprequired>

Вопрос: можно ли как-то объединить их в рамках одной страницы?
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37061475
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так?
Код: plaintext
document.forms.form1.erm.value=GetSumOfAnswers("q1", "q4", "q32", "q58", "q60", "q70", "q75", "q84", "q92", "q111", "q127", "q132");
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37061560
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. , это "устаревший" синтаксис... Рекомендуют использовать

Код: plaintext
<input type='text' id='erm' name='erm' cspbind='erm' size=' 10 ' csprequired />
Код: plaintext
document.getElementById('erm').value=GetSumOfAnswers("q1", "q4", "q32", "q58", "q60", "q70", "q75", "q84", "q92", "q111", "q127", "q132");
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37061656
Евегний
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё раз спасибо! Работает на ура!
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37062310
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

не вижу, где тут ID.
erm - это имя.
...
Рейтинг: 0 / 0
Что может "вернуть" файл/страница csp или zen?
    #37062345
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.не вижу, где тут ID.
В своём примере я его добавил...
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Что может "вернуть" файл/страница csp или zen?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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