Составители:
Рубрика:
155
Если на ЦОД установлена иная ОС, то способ установки веб-сервера и его директория могут
отличаться. Также мы не обсуждаем здесь безопасность этого решения.
В директории веб-сервера разместим файл upload.php:
<?php
if (@$_REQUEST['submitname']=="OK") {
$target_path = "./";
$target_path = $target_path.basename($_FILES['filename']['name']);
if(move_uploaded_file($_FILES['filename']['tmp_name'], $target_path)) {
echo "The file ".basename($_FILES['filename']['name']).
" has been uploaded\n";
} else{
echo "There was an error uploading the file, please try again!\n";
}
exit;
}
?>
<form enctype="multipart/form-data" action="upload.php" method="POST">
Choose a file to upload: <input name="filename" type="file" />
<input type="submit" name=submitname value="OK" />
</form>
Первая его часть содержит обработчик на PHP, который извлекает файлы из специального HTTP-
запроса и размещает их в директории веб-сервера. Вторая часть – форма HTML для формирования
этих запросов через браузер. Форма для наших целей не нужна, но ее можно использовать для
тестирования первой части.
Для бортового компьютера нужна клиентская часть HTTP, снова можно выбрать из нескольких
вариантов:
1. Можно воспользоваться консольным HTTP-клиентом, таким как cUrl и wget. Они умеют
отправлять HTTP-запросы, но не занимаются отображением полученного HTML, JS-движками и
т.п. Их удобно использовать для простых задач в скриптовых языках.
2. Также существуют аналогичные по функциональности библиотеки, например, libcUrl. Их можно
сделать частью своего приложения.
3. Наконец, можно использовать Qt Network, в котором есть поддержка протокола HTTP.
Мы выберем самый простой вариант 1. Устанавливаем cUrl в MeeGo
yum install curl
хотя он уже должен быть установлен по умолчанию. Проверим, что cUrl и веб-сервер
взаимодействуют нормально:
curl -F submitname=OK -F [email protected] http://server.com/upload.php
Здесь server.com – имя или IP-адрес сервера, где был настроен веб-сервер, а image.jpg – имя файла,
который мы получили от камеры. В браузере оцениваем результат по адресу
http://server.com/image.jpg.
Теперь надо объединить подзадачи в итоговое приложение. Мы не будем включать в итоговое
приложение подключение к Интернет по модему, при желании это легко сделать по аналогии. У нас
опять есть несколько вариантов:
5. Программа на скриптовом языке, например Perl или даже bash. Это наиболее быстрое и простое
решение, но с плохими перспективами в плане развития.
6. Обычная linux-программа на C – компромисс между предыдущим и следующим вариантами.
7. QT-приложение с графическим интерфейсом даст использовать потенциал MeeGo на полную
мощность.
Выбираем вариант 3. Проект состоит из трех файлов – camserver.pro, camserver.h и camserver.cpp.
Мы унаследуем класс CamServerWidget от QWidget и добавим в него два слота – grab() и start() и
таймер grabTimer. Пользовательский интерфейс будет состоять всего из трех кнопок start, stop и quit и
мы добавим их прямо в исходном коде, в конструкторе класса, без применения специальных
инструментов. Там же свяжем слоты и сигналы: сигнал clicked() кнопки quit свяжем со слотом quit()
Страницы
- « первая
- ‹ предыдущая
- …
- 153
- 154
- 155
- 156
- 157
- …
- следующая ›
- последняя »
