Страница 1 из 2
Чтение открытие файла по сети
Добавлено: 14 янв 2016, 15:35
Aleksey Feoktistov
Добрый день!
файл на ходится по адресу https:\192.168.0.1\FileBrowser\Download?Path=\DataLogs\DataLog.csv
и нужно его прочитать через LabVIEW.
Какая функция позволяет открыть файл расположенный в сети?
Re: Чтение открытие файла по сети
Добавлено: 14 янв 2016, 15:48
dadreamer
Data Communication -> Protocols -> HTTP Client -> GET.vi
В конце URL надо добавить [text]
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 10:50
Aleksey Feoktistov
Соединение устанавливается. ошибок нет.
логин и пароль не требуется (я его убрал)
А как сам файл открыть или прочитать?
- Безымянный.png (7.83 КБ) 12982 просмотра
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 11:55
IvanLis
Aleksey Feoktistov писал(а):Соединение устанавливается. ошибок нет.
Алексей, посмотрите в теме:
http://www.labviewportal.org/viewtopic.php?t=6431
Там при работе клиента, скачивается файл с сервера данных.
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 13:05
Aleksey Feoktistov
Иван, я так понимаю, в примере работа идет по протоколу TCP?
Какой subVI отвечает за чтение файла?
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 13:19
IvanLis
Aleksey Feoktistov писал(а):Иван, я так понимаю, в примере работа идет по протоколу TCP?
Какой subVI отвечает за чтение файла?
HTTP относится к семейству TCP/IP, это надстройка над ним.
Содержимое файла по идее должно быть в
HTTP Response SubVI, которую Вы показали на скрине, в текстовом виде.
А вот что делать потом с этим содержимым, решать Вам.
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 13:25
dadreamer
Aleksey Feoktistov писал(а):Соединение устанавливается. ошибок нет.
логин и пароль не требуется (я его убрал)
А как сам файл открыть или прочитать?
Вложение Безымянный.png больше недоступно
По-моему, здесь всё просто. Параметр
body - это файл в бинарном представлении.
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 14:36
Aleksey Feoktistov
Похоже проблема в том, что я не правильно указываю путь (до сих пор не нашел правильную ссылку)
файл весит 2 Мб и приходит в body намного меньше
Если указываю ссылку http:\192.168.0.2\FileBrowser\Download?Path=\DataLogs\DataLog.csv
то вообще ничего не приходит и headers =
Код: Выделить всё
HTTP/1.1 302 Object Moved
Content-Type:text/html
Content-Length:0
Location: http://192.168.0.2/Portal/Portal.mwsl?PriNav=FileBrowser&Path=/
Date: Thu Feb 16 22:52:17 2012
В общем, буду разбираться
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 15:11
Blackman
Справка для DataSocket функций
To read a text file from an FTP site using DataSocket functions, add [text] to the end of the URL.
To read a text file via the http protocol using DataSocket functions, add [text] to the end of the URL.
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 15:46
Aleksey Feoktistov
загрузил на контроллер картинку в формате *.png и попытался считать её
ситуация та же.
http://192.168.0.2/FileBrowser/Download ... s/cRIO.png
Код: Выделить всё
HTTP/1.1 302 Object Moved
Content-Type:text/html
Content-Length:0
Location: http://192.168.0.2/Portal/Portal.mwsl?PriNav=FileBrowser&Path=/
Date: Sun Jan 17 12:43:10 2016
попробовал такой запрос
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv[text]
тоже не работает
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 16:10
Aleksey Feoktistov
При попытке открыть файл по прямой ссылке через браузер
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv
выходит сообщение
File operation not permitted - no referrer
Операция с файлом не разрешена - нет реферера
т.е. проблема во внутренней безопасности контролера
осталось придумать как его обмануть
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 16:12
dadreamer
То есть, в браузере обращение по адресу
https://192.168.0.1/FileBrowser/Downloa ... ataLog.csv выдаёт файл, а в
нет? Обратите внимание на слэши, в url слэш должен быть везде
/ (после http(s) два слэша), а в локальных путях -
\. Если так, то нужно посмотреть, куда происходит редирект. Проще всего проверить сниффером:
Fiddler или
Charles. Настройте сниффер, потом откройте в браузере указанный url и смотрите цепь запросов. Ну, и хэдеры тоже полезно глянуть.
upd:
Aleksey Feoktistov писал(а):При попытке открыть файл по прямой ссылке через браузер
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv
выходит сообщение
File operation not permitted - no referrer
А откуда вы взяли этот url? И как и где он работает?
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 16:20
Aleksey Feoktistov
Правильная ссылка вот
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv
При копировании этой ссылки и вставке её в браузере выходит сообщение
File operation not permitted - no referrer
Операция с файлом не разрешена - нет реферера
т.е. в веб странице есть какая-то защита, которая запрещает обращаться к файлам по прямым ссылкам.
ближайшая прямая ссылка
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/
затем, нужно с этой страницы перейти сначала на
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/
а затем, можно будет нажать на кнопку и перейти по ссылке
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv
ссылка на конечный файл запрограммирована так
Код: Выделить всё
</td></tr><tr><td class="fileBrowserDir"> </td><td class='fileBrowserName'><span class='hiddenOnSmall'><a href="/FileBrowser/Download?Path=/DataLogs/DataLog.csv">DataLog.csv</a></span><span class='hiddenOnLarge'><a href="/FileBrowser/Download?Path=/DataLogs/DataLog.csv">DataLog.csv</a></span></td><td class="contentTableField fileSize">1920033</td><td class="contentTableField fbChanged"><span class="systemTime"><span class="fbTime">01:12:20 pm <br class="hiddenOnLarge"> 1/17/2016</span></span><span class="localTime" style="display: none;"><span class="fbTime">02:12:20 pm <br class="hiddenOnLarge"> 1/17/2016</span></span></td><td class="contentTableField deleteItem"><form method="GET" action="/FileBrowser/DeleteFile" onsubmit="return Delete('file')"><input type="hidden" name="Path" value="/DataLogs/DataLog.csv" /><input id="img_trash_3" src="../Images/Trash.gif" title="Delete" class="imageButton2" alt="Delete" type="image" ></form></td><td class="contentTableField"><form id='renameForm_3' class='renameForm' action='/FileBrowser/Rename' method='POST'>
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 16:30
Aleksey Feoktistov
теперь надо разобраться как можно реализовать это
https://ru.wikipedia.org/wiki/HTTP_referer
Re: Чтение открытие файла по сети
Добавлено: 17 янв 2016, 16:40
dadreamer
Aleksey Feoktistov писал(а):Правильная ссылка вот
Код: Выделить всё
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv
При копировании этой ссылки и вставке её в браузере выходит сообщение
File operation not permitted - no referrer
Операция с файлом не разрешена - нет реферера
Ну, значит, сервер должен установить cookies, чтобы можно было дальше работать. А может не хватает каких-то хэдеров. Обычно сервер сам прописывает cookies, нужно лишь переходить по ссылкам через GET/POST запросы. Посмотрите, какие cookies создаются при переходе по трём указанным ссылкам. Только сперва вычистите старые, чтоб не мешались. В
попробуйте воспроизвести последовательность перехода: сперва зайдите на один url, потом на второй и т.д. Это должно прописать cookies. Полезно перед этим у себя прописать дефолтные заголовки. Пример можно глянуть тут:
http://www.labviewportal.org/viewtopic. ... 162#p65162