powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Копирование файла с клиента на сервер в ZEN
13 сообщений из 13, страница 1 из 1
Копирование файла с клиента на сервер в ZEN
    #37344444
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всех приветствую.
Подскажите варианты копирования файла (картинка jpg) с компьютера клиента на сервер.
На странице есть image с загруженным в него изображением, а так же известны пути в файлу у клиента и будущий путь к файлу на сервере.

Код: plaintext
1.
2.
<image id="previewImage" width="100%" height="100%" src = "C:\DOCUME~1\User\LOCALS~1\Temp\test.jpg"/>
<button caption="Сохранить" onclick="zenPage.uploadImageOnServer();"/>

Я так понимаю, нужно работать с файловыми потоками.
Пытаюсь изобразить:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ClientMethod uploadImageOnServer() As %String [ Language = javascript ] 
{
        //путь к файлу у клиента
        var pathToTempDir = zenGetProp('previewImage','src');	
	
       //путь к файлу на сервере
       var pathToServer = "http://localhost/pics/test.jpg"

       zenPage.UploadImageOnServer(pathToTempDir,pathToServer);
}

В этом месте возникли сложности :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ClassMethod sUploadImageOnServer(pathToTempDir As %String, pathToServer As %String) As %String [ ZenMethod ]
{
     set binaryStream = ....  //вот тут как получить поток из pathToTempDir ?

     set stm = ## class (%FileBinaryStream).% New ()
     set stm.Filename = pathToServer 
      do  stm.CopyFrom(binaryStream)
      do  stm.%Save( 0 )
     
     quit ""
}

или есть еще варианты?


-----------------------------------------------
А мы тут плюшками балуемся...

Аленочка тм
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37344517
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нельзя сохранить так картинку, только если пользователь сам файл укажет, в поле типа <input type=file/>
а такой способ если бы работал, то это угроза безопасности так можно было бы любые файлы через браузер воровать
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37345154
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor, да получается что так..

Тогда может быть подскажете как с помощью серверного метода в Каше переместить файл с одной директории в другую ?
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37345169
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте
%Library.File:Rename
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37345375
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочка , когда речь идёт о вэбе, нужно помнить основные источники... Есть клиент. Есть сервер. Чьи файлы и в чьи директории ты собираешся перемещать?
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37345590
SmilingMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen" title="">
	<form  enctype="multipart/form-data" target="upload_target">  //без этого работать не будет
	<fileUpload id="file" name="file" />
	<submit action="submit" />
	</form>
</page>
}

{
		#dim stream As %CSP.BinaryStream=pSubmit.%GetStream("file")
		s file=##class(%FileBinaryStream).%New()
		s file.Filename="C:\test1.jpg"
		s l = ##class(RCMK.Logs.test1).%New()
		s l.i = stream.FileName  //имя файла без пути, в разных браузерах согласно документации по разному
		d l.%Save()
		s status=file.CopyFrom(stream)
		s status=file.%Save()
		
	Quit $$$OK
}
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37345945
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmilingMan
этот вариант мне известен.

2All, по сабжу пока отбой..
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37590345
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скоро и мне качать файлы (видео)... Просвятите что есть
Код: vbnet
1.
#dim


в
Код: vbnet
1.
#dim stream As %CSP.BinaryStream=pSubmit.%GetStream("file")


В документации 2009 поиском такой конструкции я не нашел... Т.е. ссылки-то показались... Но именно "#dim" в них нет.
Смотрел конечно не все но первуе несколько...
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37590379
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
#dim - это только обертка для указания типа переменной в студии, а в компилированном коде
Код: vbnet
1.
#dim stream As %CSP.BinaryStream=pSubmit.%GetStream("file")


не будет отличать от:
Код: vbnet
1.
set stream pSubmit.%GetStream("file")
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37590390
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нашел, как править свое сообщение.
Код: vbnet
1.
set stream = pSubmit.%GetStream("file")
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37590428
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosНе нашел, как править свое сообщение.
На этом форуме нет такой возможности

D_De1mos
Код: vbnet
1.
set stream = pSubmit.%GetStream("file")


Т.е. я сразу так могу и написать?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
{
		set stream = pSubmit.%GetStream("file")
		s file=##class(%FileBinaryStream).%New()
		s file.Filename="C:\test1.jpg"
		s l = ##class(RCMK.Logs.test1).%New()
		s l.i = stream.FileName  //имя файла без пути, в разных браузерах согласно документации по разному
		d l.%Save()
		s status=file.CopyFrom(stream)
		s status=file.%Save()
		
	Quit $$$OK
}
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37590485
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaВ документации 2009 поиском такой конструкции я не нашел... Т.е. ссылки-то показались... Но именно "#dim" в них нет.
Смотрел конечно не все но первуе несколько... #dim krvsaТ.е. я сразу так могу и написать?Можете.
...
Рейтинг: 0 / 0
Копирование файла с клиента на сервер в ZEN
    #37590589
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , спасибо за ссылку. Оказывается там препроцесорных команд поприбавилось.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Копирование файла с клиента на сервер в ZEN
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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