Slacky
Member
В общем изобрел очередной велосипед. Но он плохо едет. Точнее, он едет, но при ошибках ведет себя не так, как ожидается.
Исходники тут - https://github.com/slacky1965/web_server_uploader
У него всего три возможности.
1. Обновить прошивку через web.
2. Закачать какие-нибудь html файлы (например обновить старый или добавить новый).
3. Вывести на экран закачанные файлы в html директорию сервера.
Все работает. Но. При закачке прошивки, если файл больше области, выделенной под загрузку, вместо возвращения ошибки (в коде это все предусмотрено), происходит разрыв соединения и браузер пишет вот такую ошибку - Error! TypeError: NetworkError when attempting to fetch resource. А сервер должен был вернуть "Firmware image too large". И еще происходит странность. В логах отражается, что попытка закачки была два раза.
При попытке залить туда маленький файл, который не является файлом прошивки, обработка ошибки происходит корректно - "Invalid flash image type". А вот если взять файл не прошики, большой, но который меньше места под прошивку, т.е. теоретичеки он может быть загружен, то тоже выдает Error! TypeError: NetworkError when attempting to fetch resource.
Наверно сумбурно написал. Но, если файл правильный, то он загружается без проблем. А вот если он не файл прошивки и большой или просто слишком большой, то возникает проблема.
Может кто глянет, возможно JavaScript бузит, но поймать не получилось ...




Исходники тут - https://github.com/slacky1965/web_server_uploader
У него всего три возможности.
1. Обновить прошивку через web.
2. Закачать какие-нибудь html файлы (например обновить старый или добавить новый).
3. Вывести на экран закачанные файлы в html директорию сервера.
Все работает. Но. При закачке прошивки, если файл больше области, выделенной под загрузку, вместо возвращения ошибки (в коде это все предусмотрено), происходит разрыв соединения и браузер пишет вот такую ошибку - Error! TypeError: NetworkError when attempting to fetch resource. А сервер должен был вернуть "Firmware image too large". И еще происходит странность. В логах отражается, что попытка закачки была два раза.
Код:
E (927438) web_server_http: Firmware image too large. (../main/http.c:290)
W (927438) httpd_txrx: httpd_resp_send_err: 400 Bad Request - Firmware image too large
W (927448) httpd_uri: httpd_uri: uri handler execution failed
E (927468) web_server_http: Firmware image too large. (../main/http.c:290)
W (927468) httpd_txrx: httpd_resp_send_err: 400 Bad Request - Firmware image too large
W (927478) httpd_uri: httpd_uri: uri handler execution failed
Наверно сумбурно написал. Но, если файл правильный, то он загружается без проблем. А вот если он не файл прошивки и большой или просто слишком большой, то возникает проблема.
Может кто глянет, возможно JavaScript бузит, но поймать не получилось ...



