|
Модераторы: diadiavova, gambit |
|
DoKZ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.7.2013 Репутация: нет Всего: нет |
Занялся проектом на VB.NET и подошел к нему достаточно странно.
Данные на сервере почти не меняются и не обрабатываются, да и я слаб в сокетных соединениях на VB (я знаю все языки программирования, но по чуть-чуть), поэтому писать сервер-приложение стало лень, ASP.NET тоже не догнал. Поэтому "сервер" представляет из себя несколько PHP-файлов, лежащих на хостинге, которые генерируют текстовый ответ (не HTML, без тэгов), а программа уже парсит этот ответ. Например, файл "/UserHasAccessToTest.php?login=dokz&testid=50" выдаст просто plain "YES" или "NO", что попадёт в System.Net.WebResponse, а оттуда в булеан и т д. Вопрос 1: Это, вообще, нормальный подход или это совсем извращение и стоит всё по-нормальному написать? Вопрос 2: Теперь появилась такая проблема. Мне нужно залить файл на сервер. FTP нет. Предположим, это Денвер. Я создал форму с стандартным POST-запросом для аплоада. Теперь мне надо на скрытой форме с компонентом WebBrowser открыть эту страницу, указать как-то путь к файлу и нажать "аплоад". Я реализовал это с помощью реальной формы и имитации движения мыши и кликов через Cursor, но смотрится ужасно. Спасибо заранее за ответ Это сообщение отредактировал(а) DoKZ - 9.7.2013, 19:15 |
|||
|
||||
diadiavova |
|
||||
Доктор Зло(диагност, настоящий, с лицензией и полномочиями) Профиль Группа: Модератор Сообщений: 5820 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Обычно в таких случаях создается либо веб-служба, либо WCF-служба. Можно в рамках ASP.Net MVC создать вебапи, но то что делаешь ты может сойти только в очень простых случаях. Порекомендовать что-то для пхп я не могу, так как не знаю какие там есть возможности, это надо в соответствующем разделе спрашивать. Является ли это извращением? На мой взгляд да, но это не значит, что такой подход нельзя использовать. Если он решает твои задачи и является наиболее простым в реализации, то возможно это не так уж и плохо. Проблему я здесь вижу только в том, что задачи могут измениться и логику приложения придется усложнить настолько, что проще будет переписать и сделать все нормально. Парсить собственный текстовый формат - точно не есть хорошо, обычно для этих целей используется XML или JSON, последний удобнее для аякса на вебстраницах, но фреймворк располагает инструментами для работы с ним, так что тоже можно использовать. Если ты не имеешь в виду город в США, то видимо надо пояснить что это. Звучит не менее ужасно. Все что делает браузер можно сделать WebRequest'ом, для этого надо изучить что отправляет на сервер браузер при отправке формы с аттачем. Для этого погугли что такое тип содержимого multipart/form-data и как в нем организованы данные, сформировать программно такой запрос вполне реально, а то и вовсе можно готовую библиотеку поискать, которая это делает. В веббраузере вполне можно кликнуть по кнопке программно, а еще лучше программно отправить форму, ну что-то типа
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||
|
|||||
DoKZ |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 9.7.2013 Репутация: нет Всего: нет |
Под Денвером имел в виду локальный сервер (http://denwer.ru)
Проблема решена сама собой. Точнее, благодаря гуглу и западным форумам. Всё оказалось очень просто, как Вы и говорили - WebRequest с нужными параметрами. Самой большой проблемой было понять как передать имя поля (которое здесь userfile):
Оказывается, вот так:
Спасибо Вам большое за ответ, очень помогли, почитал про всё это, вроде чуть больше понял. P.S. Может кому понадобится, полный код функции, полезная штука. Передаются путь к файлу и урл. Возвращает ответ, лучше сделать не String, а потоком, но мне было не критично.
Это сообщение отредактировал(а) DoKZ - 10.7.2013, 00:04 |
||||||
|
|||||||
shurikv |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 18.4.2012 Репутация: нет Всего: нет |
А a делаю так. Файл PHP на сервере (upload.php):
Есть еще два варианта через WebClient: 1 - синхронный (программа ждет окончания процесса)
UploadProgressChanged - изменился процент загрузки UploadFileCompleted - конец загрузки файла |
||||||||
|
|||||||||
Правила форума VB .NET | |
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB .NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |