Форма для отправки на разные IP - PullRequest
0 голосов
/ 23 октября 2018

У меня есть простой сервер, работающий на ESP8266 с SD-картой, на которой хранятся файлы.На моем ПК я запускаю wampserver и у меня есть страница для загрузки файла на SD-карту на ESP '

<!DOCTYPE html>
<html>
    <head>
    <title>Handle Files</title>
    <h1 style="text-align:center;">
    File access page</h1>
    </head>
    <body>
        <form action="http://192.168.1.8/upload" method="post" 
enctype="multipart/form-data">
        <input type="text" name="ip" value="192.168.1.8">
        <input type="file" name="name">
        <input class="button" type="submit" value="Upload">
        </form>
    </body>
</html>

Есть два способа подключения к ESP - в качестве точки доступа и через WiFi,При подключении в качестве точки доступа IP - 192.168.4.1, а при WiFi - 192.168.1.8.

Как использовать IP-адрес в текстовом поле с именем ip в действии формы.

Я предполагаю, что мне понадобится javascript и я использовал его широко, передавая различные данные назад и вперед с сервера на другие страницы, но это ускользает от меня.

Обратите внимание, что сервер отправляет перенаправление на ту же страницу.

Майк.Отредактируйте, это код на стороне сервера для обработки загрузки.

void handleUpload(){
static File in;
  HTTPUpload& upload = server.upload();
  if(upload.status == UPLOAD_FILE_START){
    String filename = upload.filename;
    if(!filename.startsWith("/")) filename = "/"+filename;
    Serial.print("handleUpload Name: "); 
    Serial.println(filename);
    if(SD.exists(filename))
      SD.remove(filename);
    in = SD.open(filename,FILE_WRITE);            // Open the file for writing
  }else if(upload.status == UPLOAD_FILE_WRITE){
    if(in)
      in.write(upload.buf, upload.currentSize); // Write the received bytes to the file
  }else if(upload.status == UPLOAD_FILE_END){
    if(in) {                                    // If the file was successfully created
      in.close();                               // Close the file again
      Serial.print("handleUpload Size: "); 
      Serial.println(upload.totalSize);
      server.sendHeader("Location","http://localhost/file.htm");      // Redirect the client back to local
      server.send(303);
    }else{
      server.send(500, "text/plain", "500: couldn't create file");
    }
  }
}
...