Web.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #ifndef Web_h
  2. #define Web_h
  3. /*
  4. Code taken from espressif ESP32 OTA Update example
  5. */
  6. #include <WiFi.h>
  7. #include <WiFiClient.h>
  8. #include <WebServer.h>
  9. #include <ESPmDNS.h>
  10. #include <Update.h>
  11. class Web
  12. {
  13. private:
  14. const char* host = "esp32marauder";
  15. const char* ssid = "MarauderOTA";
  16. const char* password = "justcallmekoko";
  17. bool serving = false;
  18. int num_sta = 0;
  19. const char* loginIndex =
  20. "<form name='loginForm'>"
  21. "<table width='20%' bgcolor='A09F9F' align='center'>"
  22. "<tr>"
  23. "<td colspan=2>"
  24. "<center><font size=4><b>ESP32 Login Page</b></font></center>"
  25. "<br>"
  26. "</td>"
  27. "<br>"
  28. "<br>"
  29. "</tr>"
  30. "<td>Username:</td>"
  31. "<td><input type='text' size=25 name='userid'><br></td>"
  32. "</tr>"
  33. "<br>"
  34. "<br>"
  35. "<tr>"
  36. "<td>Password:</td>"
  37. "<td><input type='Password' size=25 name='pwd'><br></td>"
  38. "<br>"
  39. "<br>"
  40. "</tr>"
  41. "<tr>"
  42. "<td><input type='submit' onclick='check(this.form)' value='Login'></td>"
  43. "</tr>"
  44. "</table>"
  45. "</form>"
  46. "<script>"
  47. "function check(form)"
  48. "{"
  49. "if(form.userid.value=='admin' && form.pwd.value=='admin')"
  50. "{"
  51. "window.open('/serverIndex')"
  52. "}"
  53. "else"
  54. "{"
  55. " alert('Error Password or Username')/*displays error message*/"
  56. "}"
  57. "}"
  58. "</script>";
  59. /*
  60. * Server Index Page
  61. */
  62. const char* serverIndex =
  63. "<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>"
  64. "<form method='POST' action='#' enctype='multipart/form-data' id='upload_form'>"
  65. "<input type='file' name='update'>"
  66. "<input type='submit' value='Update'>"
  67. "</form>"
  68. "<div id='prg'>progress: 0%</div>"
  69. "<script>"
  70. "$('form').submit(function(e){"
  71. "e.preventDefault();"
  72. "var form = $('#upload_form')[0];"
  73. "var data = new FormData(form);"
  74. " $.ajax({"
  75. "url: '/update',"
  76. "type: 'POST',"
  77. "data: data,"
  78. "contentType: false,"
  79. "processData:false,"
  80. "xhr: function() {"
  81. "var xhr = new window.XMLHttpRequest();"
  82. "xhr.upload.addEventListener('progress', function(evt) {"
  83. "if (evt.lengthComputable) {"
  84. "var per = evt.loaded / evt.total;"
  85. "$('#prg').html('progress: ' + Math.round(per*100) + '%');"
  86. "}"
  87. "}, false);"
  88. "return xhr;"
  89. "},"
  90. "success:function(d, s) {"
  91. "console.log('success!')"
  92. "},"
  93. "error: function (a, b, c) {"
  94. "}"
  95. "});"
  96. "});"
  97. "</script>";
  98. public:
  99. Web();
  100. void main();
  101. void setupOTAupdate();
  102. };
  103. #endif