|
v7: Как отправить файл на сервер из 1с7 в сыром формате | ☑ | ||
---|---|---|---|---|
0
BalBess
20.02.13
✎
09:54
|
Нужно отправить jpg файл без перекодировки, т.е. в сыром виде.
Есть обработка, работает через v7plus. Хочу чтобы без использования компонент. Сама компонента через что работает? |
|||
1
zak555
20.02.13
✎
09:55
|
аутлук
|
|||
2
Тьма
20.02.13
✎
10:01
|
||||
3
Rie
20.02.13
✎
10:03
|
(0) "Без компонент"? Поскольку 7-ка не имеет собственных средств работы с почтой, тебе всё равно придётся использовать что-то стороннее. А ВК это или ActiveX - дело десятое.
|
|||
4
BalBess
20.02.13
✎
10:06
|
Мне нужно отправить по HTTP на сервер, например 1000 картинок
Сейчас используется v7plus.ОтправитьДляОбработки() т.е. не почту |
|||
5
BalBess
20.02.13
✎
10:12
|
Нужно чтобы запрос был такой
POST /admin/exchange/auto/?type=catalog&mode=file&filename=import_files/15/15545916-b8a9-4054-b943-d76dc2c6e14b_2.jpg HTTP/1.1 (заголовки пропущу) (далее пошли данные jpg файла, "сырые", без кодировки) яШяа JFIF.. (символы не вставляются, в общем просто данные файла) |
|||
6
Rie
20.02.13
✎
10:16
|
(4) Для отправки почты - есть куча ВК. Используй их - и будет счастье.
|
|||
7
Тьма
20.02.13
✎
10:16
|
||||
8
BalBess
20.02.13
✎
10:24
|
WinhttpRequest - как с помощью его прикрепить файл? Без кодировки.
Что еще есть, кроме WinhttpRequest |
|||
9
BalBess
21.02.13
✎
07:13
|
Есть у кого мысли?
WinhttpRequest - не подходит, т.к. 1с7 не умеет работать с двоичными данными, я не смогу вставить тело в запрос гуру, какие еще есть варианты? |
|||
10
big
21.02.13
✎
07:25
|
(0) Почему возникла такая "хотелка"? Что-то рабтает не так, как хочется или просто желание "не хочу вот так хочу вот эдак" ?
|
|||
11
BalBess
21.02.13
✎
07:52
|
"не хочу вот так хочу вот эдак" - что-то типа того :)
просто база для обмена инфой с сайтом, не хотелось-бы прикручивать v7plus только из-за V7HTTPReader хотел создать универсальную обработку без использования компонент, XML уже победил Сама библиотека v7plus через какой объект работает? |
|||
12
big
22.02.13
✎
05:16
|
(11) вот работает оно - и пусть работает! Только время своё попусту тратишь )))
|
|||
13
ЧеловекДуши
22.02.13
✎
05:45
|
(9) Через 1С++ умеет :)
|
|||
14
ЧеловекДуши
22.02.13
✎
05:46
|
(11) wiki:Дон_Кихот - он тоже с мельницами сражался :)
|
|||
15
ЧеловекДуши
22.02.13
✎
05:48
|
+ Хотя вот этот расклад, куда практичней http://lurkmore.to/Донки-хот
|
|||
16
BalBess
22.02.13
✎
09:50
|
для меня сейчас это вопрос принципа ))
тут накидал скрипт (не пинайте): Функция SendFileToServer(Путь) Попытка Скрипт = " |Function SendFileToServer() | Set httpRequest = CreateObject(""WinHttp.WinHttpRequest.5.1"") | URL = ""http://localhost/admin/exchange/auto/"" | httpRequest.Open ""POST"", URL, False | ' ставим нужные заголовки | httpRequest.setRequestHeader(""Accept"", ""text/html, */*""); | VarBody = ""type=catalog&mode=file&filename=import_files/15/15545916-b8a9-4054-b943-d76dc2c6e14b_2.jpg"" | | ' тут надо как-то к VarBody прицепить данные файла в сыром виде | ' может через FSO или ADODB.Stream ? | | httpRequest.Send(VarBody) | ' обработка ошибок | Select Case httpRequest.Status | Case 200 | SendFileToServer = httpRequest.ResponseText | Case Else | SendFileToServer = httpRequest.StatusText | End Select |End Function |"; ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(Скрипт); Возврат ScrptCtrl.Run("SendFileToServer"); Исключение Возврат ОписаниеОшибки(); КонецПопытки; КонецФункции Вопросов куча 1) как прекрепить к телу содержимое файла (перед отправкой) 2) как передать в функцию список значений, с путями файлов для отправки 3) нужно-ли закрывать соединение после отправки 4) будет-ли все это работать |
|||
17
Туц
22.02.13
✎
12:08
|
Через ado.stream
|
|||
18
BalBess
22.02.13
✎
12:35
|
мож у кого есть примерчик..
оказалось немного попроще, мне просто надо "вложить" файл в send(File), т.е. httpRequest.Send(File) где мне взять File?? может как-то Set FSO = CreateObject(""Scripting.FileSystemObject"") Set File = FSO.GetFile(""" + Путь + """) |
|||
19
BalBess
25.02.13
✎
10:30
|
Все! заработало. скрипт (мож кому пригодится)
Function SendFileToServer() 'Set httpRequest = CreateObject("WinHttp.WinHttpRequest.5.1") Set httpRequest = CreateObject("MSXML2.XMLHTTP") URL = "http://localhost/admin/exchange/auto/?type=catalog&mode=file&filename=import_files/15/15545916-b8a9-4054-b943-d76dc2c6e14b_2.jpg" httpRequest.Open "POST", URL, False Accept = "text/html" Enctype = "multipart/form-data" httpRequest.setrequestheader "Accept", Accept httpRequest.setrequestheader "Content-type", Enctype Path = "C:\Temp\dog.jpg" strInfo = "error" Dim Stream Set Stream = CreateObject("ADODB.Stream") Stream.Type = 1 Stream.Mode = 3 Stream.Open Stream.LoadFromFile Path If Err.Number <> 0 Then SendFileToServer = Err.Number Exit Function End If Data = Stream.Read httpRequest.Send Data Select Case httpRequest.Status Case 200 strInfo = httpRequest.ResponseText Case Else strInfo = httpRequest.StatusText End Select SendFileToServer = strInfo End Function Осталось понять как в него передать список значений с именами и путями файлов из 1С |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |