Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузкой файла HTTP/HTTPS, Не получается загрузить файл 
:(
    Опции темы
t77
  Дата 31.5.2011, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Доброе время суток. В коде системы имеется функция, задача которой загрузить файл в объект Stream.
Код

Function GetFile(FileName)
  Dim Stream: Set Stream = CreateObject("ADODB.Stream")
  Stream.Type = 1 'Binary
  Stream.Open
  Stream.LoadFromFile FileName
  GetFile = Stream.Read
  Stream.Close
End Function


Все вроде как хорошо работает. 
Недавно решили перейти на безопасный режим работы - протокол HTTPS.
После чего данная функция перестала работать! Получаю ошибку об отказе доступа к другому домену в строке:
Код

 Stream.LoadFromFile FileName


Не понимаю, почему ? И как решить данную проблему ?
Помогите пожалуйста!
PM MAIL   Вверх
Akina
Дата 31.5.2011, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



По-моему, Msdaipp.dso не поддерживает HTTPS-схему... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
t77
  Дата 31.5.2011, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Akina,
Что это такое ? 
Имеется ли альтернатива ?
Мне необходимо решение данной проблемы! Как быть?
PM MAIL   Вверх
Akina
Дата 31.5.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Ну, например, использовать MS Internet Transfer Control - по крайней мере это быстро... 
Код

s=inet1.openurl("https://сервер/каталог/страница")
Вот только придётся таскать с собой соотв. либы, если их нет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
t77
  Дата 31.5.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Поймите, мне необходимо послать на сервер файл! Тобишь, заоплодить его...
При этом, обязательное условие - это возможность работы с протоколом HTTPS.
Как я уже писал, имеются несколько функций, написанных на visual basic, которые это делали и делают с протоколом HTTP.
Переписывать все функции и исправлять функциональность во всех местах системы требует много времени... Таким образом мне хотелось узнать, можно ли подкорректировав имеющийся код, заоплодить файл на сервер, используя HTTPS..??
Пройдя дебагером, мною было обнаружено, что вылетаю с ошибкой в зубах, в  строке:
Код

Stream.LoadFromFile FileName;


Объясните мне пожалуйста, каким образом мне использовать то, что вы предлагаете: s=inet1.openurl("https://сервер/каталог/страница")
Дайте альтернативный пример данной функции:

Код

'Returns file contents As a binary data
Function GetFile(FileName)
  Dim Stream: Set Stream = CreateObject("ADODB.Stream")
  Stream.Type = 1 'Binary
  Stream.Open
  Stream.LoadFromFile FileName
  GetFile = Stream.Read
  Stream.Close
End Function


И еще мне не понятно последнее предложение:

Цитата

Вот только придётся таскать с собой соотв. либы, если их нет. 


Спасибо
PM MAIL   Вверх
Akina
Дата 31.5.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Создайте новый проект (Standard EXE).
Project-Components
Найдите на вкладке Controls строку Microsoft Internet Transfer Control.
Поставьте галку.
Закройте окно компонентов.
Поместите на форму появившийся на панели Toolbox контрол.
Создайте на форме кнопку.
Затолкайте в модуль код:
Код

Option Explicit

Private Sub Command1_Click()
Dim strTemp As String
strTemp = InputBox("Введите требуемый URL:")
strTemp = Inet1.OpenURL(strTemp)
Debug.Assert True
End Sub

Запустите.
Введите в строку запроса требуемый адрес, включая протокол.
После остановки исполнения проверьте, что в переменную попал нужный текст.
Если требуется получать бинарные данные - укажите соотв. флаг в вызове OpenURL и принимайте данные не в строку, а в массив типа Byte.

Добавлено через 9 минут и 7 секунд
Цитата(t77 @  31.5.2011,  12:23 Найти цитируемый пост)
 мне не понятно последнее предложение

На станции, куда будет перенесено приложение, может не оказаться MSINET.OCX - тогда его нужно прихватить с собой и поместить либо в system32, либо (что разумнее) в каталог с исполняемым файлом. А если создаётся инсталлятор - следует включить в него этот модуль.
Возможно, потребуется ещё какая библиотека - если так, программа при старте на системе, где чего-то нехватает, об этом скажет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
t77
  Дата 31.5.2011, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Akina, 
Нет нет, никакого проекта visual basic нет! 
Прошу прощения, что не объяснил сразу. Дело в том, что в моем распоряжении имеется только лишь один файл upload_file.vbs В данном файле находятся несколько функций, которые аплодят файл на сервер. Все! Кроме этого файла вся сторона клиента написанна на javascript. Из кода javascript вызывается функция vb, которая находится в файле - upload_file.vbs . Как я вам уже писал, я продебажил функцию vb(GetFile) и обнаружил ошибку в строке:
Stream.LoadFromFile FileName
Вопрос, можно ли подкорректировать данную функцию или нет..?? Если да, то как ?
спасибо




PM MAIL   Вверх
Akina
Дата 31.5.2011, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



А почему весь код не написан на JScript? Оне ж с VBScript как "партия и Ленин"...
Насчёт получения информации по HTTPS в VBS/JS счас посмотрю - но что-то не припоминаю, чтобы у меня оно валялось...

Добавлено через 1 минуту и 14 секунд
Цитата(t77 @  31.5.2011,  13:00 Найти цитируемый пост)
Вопрос, можно ли подкорректировать данную функцию или нет..?? Если да, то как ?

Я точно помню, что к HTTPS-ресурсам через ADO можно подключаться, создав соотв. UDL. Но кода у меня нет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
t77
  Дата 2.6.2011, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Дело в том, что я не особо владею VB. 
Вроде код читать не сложно, я практически могу его понять. Но так, чтобы замутить на VB что то серьезное  это тяжеловато...
И все таки очень нужно мне решить данную проблему!
Уже каторый день ищу, в сети ничего дельного не нахожу...
 smile 
Уважаемые коллеги, помогите!!! 
Спасибо

PM MAIL   Вверх
Akina
Дата 2.6.2011, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(t77 @  2.6.2011,  10:24 Найти цитируемый пост)
Вроде код читать не сложно, я практически могу его понять.

Отлично. Понимай (источник):
Код

srcFolder = "\\server\share\"
strUserID = "MyID"
strPassword = "APasswordGoesHere" 
strURL = "https://www.theuploadwebsite.com/puthere/"

Set HTTP = WScript.CreateObject("Microsoft.XMLHTTP")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.getfolder(srcFolder) 
 

For Each File in Folder.Files
  If fso.GetExtensionName(File)="TXT" Then
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Type = 1
    objStream.Open 
    objStream.LoadFromFile(srcFolder & fso.GetFileName(File))

    HTTP.open "PUT", strURL & fso.GetFileName(File), False, strUserID, strPassword 
    WScript.Echo "Now uploading file " & fso.GetFileName(File)


    HTTP.send objStream.Read

    WScript.Echo "Uploading complete for file " & fso.GetFileName(File)
    fso.DeleteFile(File)
  End If
Next 
WScript.Echo "All files uploaded."

Set HTTP = Nothing

Этот код загружает все .TXT файлы из каталога srcFolder в каталог strURL по HTTPS, используя метод PUT.

Цитата(t77 @  2.6.2011,  10:24 Найти цитируемый пост)
Уже каторый день ищу, в сети ничего дельного не нахожу...

PS. Строка запроса в Гугле выглядела так: upload file https vbscript -asp, и первая же ссылка дала решение.




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
t77
  Дата 9.6.2011, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 459
Регистрация: 27.7.2008

Репутация: нет
Всего: нет



Akina
 Спасибо, буду изметять, приведенный вами код и пробовать...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.