Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Копирование файла с клиента на сервер в ZEN / 13 сообщений из 13, страница 1 из 1
09.07.2011, 05:21
    #37344444
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
Всех приветствую.
Подскажите варианты копирования файла (картинка 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
09.07.2011, 12:00
    #37344517
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
нельзя сохранить так картинку, только если пользователь сам файл укажет, в поле типа <input type=file/>
а такой способ если бы работал, то это угроза безопасности так можно было бы любые файлы через браузер воровать
...
Рейтинг: 0 / 0
10.07.2011, 13:23
    #37345154
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
DAiMor, да получается что так..

Тогда может быть подскажете как с помощью серверного метода в Каше переместить файл с одной директории в другую ?
...
Рейтинг: 0 / 0
10.07.2011, 13:47
    #37345169
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
попробуйте
%Library.File:Rename
...
Рейтинг: 0 / 0
10.07.2011, 22:53
    #37345375
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
Аленочка , когда речь идёт о вэбе, нужно помнить основные источники... Есть клиент. Есть сервер. Чьи файлы и в чьи директории ты собираешся перемещать?
...
Рейтинг: 0 / 0
11.07.2011, 09:46
    #37345590
SmilingMan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
Код: 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
11.07.2011, 12:10
    #37345945
Аленочка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
SmilingMan
этот вариант мне известен.

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


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


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


не будет отличать от:
Код: vbnet
1.
set stream pSubmit.%GetStream("file")
...
Рейтинг: 0 / 0
23.12.2011, 11:42
    #37590390
D_De1mos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
Не нашел, как править свое сообщение.
Код: vbnet
1.
set stream = pSubmit.%GetStream("file")
...
Рейтинг: 0 / 0
23.12.2011, 11:55
    #37590428
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
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
23.12.2011, 12:12
    #37590485
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
krvsaВ документации 2009 поиском такой конструкции я не нашел... Т.е. ссылки-то показались... Но именно "#dim" в них нет.
Смотрел конечно не все но первуе несколько... #dim krvsaТ.е. я сразу так могу и написать?Можете.
...
Рейтинг: 0 / 0
23.12.2011, 12:59
    #37590589
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование файла с клиента на сервер в ZEN
servit , спасибо за ссылку. Оказывается там препроцесорных команд поприбавилось.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Копирование файла с клиента на сервер в ZEN / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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