Чтение открытие файла по сети

Работа с файлами и базами данных

Чтение открытие файла по сети

Postby Aleksey Feoktistov on 14 Jan 2016, 15:35

Добрый день!
файл на ходится по адресу https:\192.168.0.1\FileBrowser\Download?Path=\DataLogs\DataLog.csv
и нужно его прочитать через LabVIEW.
Какая функция позволяет открыть файл расположенный в сети?
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby dadreamer on 14 Jan 2016, 15:48

Data Communication -> Protocols -> HTTP Client -> GET.vi
В конце URL надо добавить [text]
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 10:50

Соединение устанавливается. ошибок нет.
логин и пароль не требуется (я его убрал)
А как сам файл открыть или прочитать?
Безымянный.png
Безымянный.png (7.83 KiB) Viewed 7105 times
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby IvanLis on 17 Jan 2016, 11:55

Aleksey Feoktistov wrote:Соединение устанавливается. ошибок нет.

Алексей, посмотрите в теме: http://www.labviewportal.ru/viewtopic.php?t=6431
Там при работе клиента, скачивается файл с сервера данных.
User avatar
IvanLis
professor
professor
 
Posts: 4609
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 13:05

Иван, я так понимаю, в примере работа идет по протоколу TCP?
Безымянный.png


Какой subVI отвечает за чтение файла?
Attachments
Безымянный.png
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby IvanLis on 17 Jan 2016, 13:19

Aleksey Feoktistov wrote:Иван, я так понимаю, в примере работа идет по протоколу TCP?
Какой subVI отвечает за чтение файла?


HTTP относится к семейству TCP/IP, это надстройка над ним.

Содержимое файла по идее должно быть в HTTP Response SubVI, которую Вы показали на скрине, в текстовом виде.
А вот что делать потом с этим содержимым, решать Вам.
User avatar
IvanLis
professor
professor
 
Posts: 4609
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 725
hardware VIP bloggers teachers

Re: Чтение открытие файла по сети

Postby dadreamer on 17 Jan 2016, 13:25

Aleksey Feoktistov wrote:Соединение устанавливается. ошибок нет.
логин и пароль не требуется (я его убрал)
А как сам файл открыть или прочитать?
The attachment Безымянный.png is no longer available

По-моему, здесь всё просто. Параметр body - это файл в бинарном представлении.
Attachments
2016-01-17_15-22-44.jpg
2016-01-17_15-23-22.jpg
Get_File_By_Url.vi
lv2011
(10.52 KiB) Downloaded 76 times
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 14:36

Похоже проблема в том, что я не правильно указываю путь (до сих пор не нашел правильную ссылку)
Безымянный.png

файл весит 2 Мб и приходит в body намного меньше
Если указываю ссылку http:\192.168.0.2\FileBrowser\Download?Path=\DataLogs\DataLog.csv
то вообще ничего не приходит и headers =
Code: Select all
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


В общем, буду разбираться
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby Blackman on 17 Jan 2016, 15:11

Справка для 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.
Blackman
leader
leader
 
Posts: 761
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 217

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 15:46

загрузил на контроллер картинку в формате *.png и попытался считать её
ситуация та же.
http://192.168.0.2/FileBrowser/Download ... s/cRIO.png
Code: Select all
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


попробовал такой запрос
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv[text]

тоже не работает
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 16:10

При попытке открыть файл по прямой ссылке через браузер
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv

выходит сообщение
File operation not permitted - no referrer
Операция с файлом не разрешена - нет реферера

т.е. проблема во внутренней безопасности контролера
осталось придумать как его обмануть
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby dadreamer on 17 Jan 2016, 16:12

То есть, в браузере обращение по адресу https://192.168.0.1/FileBrowser/Download?Path=\DataLogs\DataLog.csv выдаёт файл, а в :labview: нет? Обратите внимание на слэши, в url слэш должен быть везде / (после http(s) два слэша), а в локальных путях - \. Если так, то нужно посмотреть, куда происходит редирект. Проще всего проверить сниффером: Fiddler или Charles. Настройте сниффер, потом откройте в браузере указанный url и смотрите цепь запросов. Ну, и хэдеры тоже полезно глянуть.

upd:
Aleksey Feoktistov wrote:При попытке открыть файл по прямой ссылке через браузер
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv

выходит сообщение
File operation not permitted - no referrer

А откуда вы взяли этот url? И как и где он работает?
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 16:20

Правильная ссылка вот
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv

При копировании этой ссылки и вставке её в браузере выходит сообщение
File operation not permitted - no referrer

Операция с файлом не разрешена - нет реферера

т.е. в веб странице есть какая-то защита, которая запрещает обращаться к файлам по прямым ссылкам.
ближайшая прямая ссылка
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/

затем, нужно с этой страницы перейти сначала на
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/

а затем, можно будет нажать на кнопку и перейти по ссылке
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv

ссылка на конечный файл запрограммирована так
Code: Select all
</td></tr><tr><td class="fileBrowserDir">&nbsp;</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&nbsp;<br class="hiddenOnLarge">&nbsp;1/17/2016</span></span><span class="localTime" style="display: none;"><span class="fbTime">02:12:20 pm&nbsp;<br class="hiddenOnLarge">&nbsp;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'>
Attachments
Безымянный.png
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby Aleksey Feoktistov on 17 Jan 2016, 16:30

теперь надо разобраться как можно реализовать это
https://ru.wikipedia.org/wiki/HTTP_referer
User avatar
Aleksey Feoktistov
leader
leader
 
Posts: 897
Joined: 20 Jan 2009, 00:15
Location: Tyumen
Medals: 6
Activity (2) Gold (1) Silver (1) Black (2)
LabVIEW Version: 2015
Karma: 82
VIP students

Re: Чтение открытие файла по сети

Postby dadreamer on 17 Jan 2016, 16:40

Aleksey Feoktistov wrote:Правильная ссылка вот
Code: Select all
http://192.168.0.2/FileBrowser/Download?Path=/DataLogs/DataLog.csv

При копировании этой ссылки и вставке её в браузере выходит сообщение
File operation not permitted - no referrer

Операция с файлом не разрешена - нет реферера

Ну, значит, сервер должен установить cookies, чтобы можно было дальше работать. А может не хватает каких-то хэдеров. Обычно сервер сам прописывает cookies, нужно лишь переходить по ссылкам через GET/POST запросы. Посмотрите, какие cookies создаются при переходе по трём указанным ссылкам. Только сперва вычистите старые, чтоб не мешались. В :labview: попробуйте воспроизвести последовательность перехода: сперва зайдите на один url, потом на второй и т.д. Это должно прописать cookies. Полезно перед этим у себя прописать дефолтные заголовки. Пример можно глянуть тут: viewtopic.php?p=65162#p65162
User avatar
dadreamer
professor
professor
 
Posts: 3102
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 782
I/O VIP vision internet

Next

Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 1 guest

cron