DimkaS
написал 21 апреля 2008 года в 17:48 (939 просмотров)
Ведет себя
как мужчина; открыл 84 темы в форуме, оставил 922 комментария на сайте.
Есть железка на арме под линухом. Есть простейший веб-интерфейс на шелле. Нужно организовать загрузку файла в устройство через браузер. CGI-скрипт получает такой набор переменных:
AUTH_TYPE='Basic' CONTENT_LENGTH='357' CONTENT_TYPE='multipart/form-data; boundary=---------------------------10756947078936209661531891019' GATEWAY_INTERFACE='CGI/1.1' HTTP_REFERER='http://192.168.1.1/cgi-bin/update.cgi' HTTP_USER_AGENT='Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.12) Gecko/20080208 (Debian-1.8.1.12-2) Epiphany/2.14' IFS=' ' PATH='/bin:/usr/bin:/etc:/sbin:/usr/sbin' PATH_INFO='' POST_STRING='-----------------------------10756947078936209661531891019 ' PPID='19119' PS1='# ' PS2='> ' PS4='+ ' PWD='/home/httpd/cgi-bin' QUERY_STRING='' REMOTE_ADDR='192.168.1.10' REMOTE_PORT='45489' REMOTE_USER='root' REQUEST_METHOD='POST' REQUEST_URI='/cgi-bin/update_exec.cgi' SCRIPT_FILENAME='/home/httpd/cgi-bin/update_exec.cgi' SCRIPT_NAME='/cgi-bin/update_exec.cgi' SERVER_PROTOCOL='HTTP/1.0' SERVER_SOFTWARE='busybox httpd/1.9.0'
Вопрос — как получить файл?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Новая проблема: конструкция read + echo съедает некоторые символы из бинарника. Даж не знаю, что и делать. Ваять прогу на Си что-то не хочется…
Вот мой скрипт:
<meta content=«\"1;url=update.cgi\"/»>
Насколько я знаю shell, для таких задач он подходит далеко не лучшим образом.
С С ты загнул… А вот на что-нибудь типа Perl’а ИМХО посмотреть стоит.
А если вместо `while true; …’, написать
что будет?
[upd]
А, не получится. grep зависнет. но grep можно заменить awk’ом…
Anarchist, запихивать в эту железку perl ради только одной функции очень неохота.
rgo, попробую
бинарник вместе со всеми заголовками загнал в файл при помощи tee. Осталось придумать как убрать заголовки:
Важно не забыть выкинуть символы переноса строки.
sed наличествует?
Да, sed есть, верхний заголовок уже убрал. Проблема с tee — байты 0×00 заменяются на 0×0A. Надо искать что-то другое…
Виновата не tee, а sed и я. Конечное решение: