当前位置: 首页 > news >正文

学校网站建设流程步骤企业网站建设该入啥会计科目

学校网站建设流程步骤,企业网站建设该入啥会计科目,丹东网站网站建设,河南郑州水灾这个是来自ESP32官方示例的改版#xff0c;官方的示例由于存在一些问题所以我进行了修改原本的示例有点逻辑上的问题#xff0c;所以进行了一些修改主要修改有#xff1a;1.新增SD卡测试部分 复制自官方SD卡示例2.新增一个根目录页#xff0c;访问根目录就可以看到3.修改了…这个是来自ESP32官方示例的改版官方的示例由于存在一些问题所以我进行了修改原本的示例有点逻辑上的问题所以进行了一些修改主要修改有1.新增SD卡测试部分 复制自官方SD卡示例2.新增一个根目录页访问根目录就可以看到3.修改了目录展示页可以通过ip地址/list看到原本这个页面只会返回BAD ARGS4.新增Wifi设置页可以通过Wifi设置页更改链接的Wifi(但是建议不要随便更改除非连着串口不然你看不到新的IP地址)5.新增文件上传页可以通过网页进行上传(调用原本的/edit的链接)下面是页面展示主页Index.PNG (29.16 KB, 下载次数: 16)2018-8-27 15:10 上传Wifi设置页WifiSetting.PNG (20.95 KB, 下载次数: 14)2018-8-27 15:10 上传WIFI信息页WIFIINFO.PNG (7.28 KB, 下载次数: 19)2018-8-27 15:10 上传文件目录页File List.PNG (43.39 KB, 下载次数: 16)2018-8-27 15:10 上传文件上传页UPLOAD.PNG (3.88 KB, 下载次数: 17)2018-8-27 15:10 上传主要代码[mw_shl_codecpp,true]/*SDWebServer - Example WebServer with SD Card backend for esp8266Copyright (c) 2015 Hristo Gochkov. All rights reserved.This file is part of the WebServer library for Arduino environment.This library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USAHave a FAT Formatted SD Card connected to the SPI port of the ESP8266The web root is the SD Card root folderFile extensions with more than 3 charecters are not supported by the SD LibraryFile Names longer than 8 charecters will be truncated by the SD library, so keep filenames shorterindex.htm is the default index (works on subfolders as well)upload the contents of SdRoot to the root of the SDcard and access the editor by going to http://esp8266sd.local/editModified by Maoweicao 2018.8.27*/#include #include #include #include #include #include #include FS.h#define DBG_OUTPUT_PORT Serialconst char* ssid .................; //Replace youself wifi ssidconst char* password ......................; //Replace youself wifi passwordconst char* host esp32sd;String wifissid ;String wifipwd ;WebServer server(80);static bool hasSD false;File uploadFile;//format bytesString formatBytes(size_t bytes) {if (bytes 1024) {return String(bytes) B;} else if (bytes (1024 * 1024)) {return String(bytes / 1024.0) KB;} else if (bytes (1024 * 1024 * 1024)) {return String(bytes / 1024.0 / 1024.0) MB;} else {return String(bytes / 1024.0 / 1024.0 / 1024.0) GB;}}void listDir(fs::FS fs, const char * dirname, uint8_t levels){Serial.printf(Listing directory: %s\n, dirname);File root fs.open(dirname);if(!root){Serial.println(Failed to open directory);return;}if(!root.isDirectory()){Serial.println(Not a directory);return;}File file root.openNextFile();while(file){if(file.isDirectory()){Serial.print(  DIR : );Serial.println(file.name());if(levels){listDir(fs, file.name(), levels -1);}} else {Serial.print(  FILE: );Serial.print(file.name());Serial.print(  SIZE: );Serial.println(file.size());}file root.openNextFile();}}void createDir(fs::FS fs, const char * path){Serial.printf(Creating Dir: %s\n, path);if(fs.mkdir(path)){Serial.println(Dir created);} else {Serial.println(mkdir failed);}}void removeDir(fs::FS fs, const char * path){Serial.printf(Removing Dir: %s\n, path);if(fs.rmdir(path)){Serial.println(Dir removed);} else {Serial.println(rmdir failed);}}void readFile(fs::FS fs, const char * path){Serial.printf(Reading file: %s\n, path);File file fs.open(path);if(!file){Serial.println(Failed to open file for reading);return;}Serial.print(Read from file: );while(file.available()){Serial.write(file.read());}file.close();}void writeFile(fs::FS fs, const char * path, const char * message){Serial.printf(Writing file: %s\n, path);File file fs.open(path, FILE_WRITE);if(!file){Serial.println(Failed to open file for writing);return;}if(file.print(message)){Serial.println(File written);} else {Serial.println(Write failed);}file.close();}void appendFile(fs::FS fs, const char * path, const char * message){Serial.printf(Appending to file: %s\n, path);File file fs.open(path, FILE_APPEND);if(!file){Serial.println(Failed to open file for appending);return;}if(file.print(message)){Serial.println(Message appended);} else {Serial.println(Append failed);}file.close();}void renameFile(fs::FS fs, const char * path1, const char * path2){Serial.printf(Renaming file %s to %s\n, path1, path2);if (fs.rename(path1, path2)) {Serial.println(File renamed);} else {Serial.println(Rename failed);}}void deleteFile(fs::FS fs, const char * path){Serial.printf(Deleting file: %s\n, path);if(fs.remove(path)){Serial.println(File deleted);} else {Serial.println(Delete failed);}}void testFileIO(fs::FS fs, const char * path){File file fs.open(path);static uint8_t buf[512];size_t len 0;uint32_t start millis();uint32_t end start;if(file){len file.size();size_t flen len;start millis();while(len){size_t toRead len;if(toRead 512){toRead 512;}file.read(buf, toRead);len - toRead;}end millis() - start;Serial.printf(%u bytes read for %u ms\n, flen, end);file.close();} else {Serial.println(Failed to open file for reading);}file fs.open(path, FILE_WRITE);if(!file){Serial.println(Failed to open file for writing);return;}size_t i;start millis();for(i0; i2048; i){file.write(buf, 512);}end millis() - start;Serial.printf(%u bytes written for %u ms\n, 2048 * 512, end);file.close();}void returnOK() {server.send(200, text/plain, );}void returnOK(String msg) {server.send(200, text/plain, msg\r\n);}void returnFail(String msg) {server.send(500, text/plain, msg \r\n);}bool loadFromSdCard(String path) {String dataType text/plain;if (path.endsWith(/)) {path index.htm;}if (path.endsWith(.src)) {path path.substring(0, path.lastIndexOf(.));} else if (path.endsWith(.htm)) {dataType text/html;} else if (path.endsWith(.css)) {dataType text/css;} else if (path.endsWith(.js)) {dataType application/javascript;} else if (path.endsWith(.png)) {dataType image/png;} else if (path.endsWith(.gif)) {dataType image/gif;} else if (path.endsWith(.jpg)) {dataType image/jpeg;} else if (path.endsWith(.ico)) {dataType image/x-icon;} else if (path.endsWith(.xml)) {dataType text/xml;} else if (path.endsWith(.pdf)) {dataType application/pdf;} else if (path.endsWith(.zip)) {dataType application/zip;}File dataFile SD.open(path.c_str());if (dataFile.isDirectory()) {path /index.htm;dataType text/html;dataFile SD.open(path.c_str());}if (!dataFile) {return false;}if (server.hasArg(download)) {dataType application/octet-stream;}if (server.streamFile(dataFile, dataType) ! dataFile.size()) {DBG_OUTPUT_PORT.println(Sent less data than expected!);}dataFile.close();return true;}void handleWifiPage(){String content Congratulations! You Now Connect to The Wifi!;content You Connect Wifi Name is:String(ssid);content Wifi Password is:String(password);content You input ssid is: wifissid ;content You input password is:wifipwd;content ;server.send(200, text/html, content);}void handleSetWifi(){String msg;if (server.hasArg(DISCONNECT)){Serial.println(Disconnection);String header HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID0\r\nLocation: /wifiinfo\r\nCache-Control: no-cache\r\n\r\n;server.sendContent(header);return;}if (server.hasArg(WIFINAME) server.hasArg(WIFIPWD)){wifissidserver.arg(WIFINAME);wifipwdserver.arg(WIFIPWD);String header HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID1\r\nLocation: /wifiinfo\r\nCache-Control: no-cache\r\n\r\n;server.sendContent(header);Serial.println(WIFI INFO:);Serial.println(Wifi Name:wifissid);Serial.println(Wifi Password:wifipwd);if(WiFi.isConnected()){WiFi.disconnect();}WiFi.begin(wifissid.c_str(),wifipwd.c_str());int i0;while (WiFi.status() ! WL_CONNECTED i 50) {//wait 25 secondsSerial.print(.);delay(500);}if (i 51) {DBG_OUTPUT_PORT.print(Could not connect to);DBG_OUTPUT_PORT.println(wifissid);while (1) {delay(500);}}DBG_OUTPUT_PORT.print(Connected! IP address: );DBG_OUTPUT_PORT.println(WiFi.localIP());return;}String content This is a Wifi Setting Page;content Wifi SSID:;content Wifi Password:;content msg ;content We Can Scan The Wifi List is:;int n WiFi.scanNetworks();if(n0)content There is no wifi can use!;else{content ;for(int i0; icontent (String()String( Wifi SSID:)String(WiFi.SSID(i))String( Wifi RSSI:)String(WiFi.RSSI(i))String((WiFi.encryptionType(i) WIFI_AUTH_OPEN)?String( ):String(*))String());}content ;}content ;server.send(200, text/html, content);}void handleRoot(){Serial.println(Enter handleRoot);String header;String content Hello, you successfully connected to ESP32-F!;if (server.hasHeader(User-Agent)){content the user agent used is : server.header(User-Agent) ;}content You can choose this page to visit:;content Wifi Setup;content Wifi Infomation;content File List;content Upload File;content Good Luck Everyone!;content ;server.send(200, text/html, content);}void handleUploadWeb(){File htmlSD.open(/upload/upload.html);String dataType text/html;server.streamFile(html,dataType);Serial.println(Open Upload File);}void handleFileUpload() {bool updonefalse;if (server.uri() ! /edit) {return;}String fileName ;HTTPUpload upload server.upload();if (upload.status UPLOAD_FILE_START) {if (SD.exists((char *)upload.filename.c_str())) {SD.remove((char *)upload.filename.c_str());}fileName /upload/upload.filename.substring(upload.filename.lastIndexOf(\\)1);Serial.println(fileName);uploadFile SD.open(fileName, FILE_WRITE);if(uploadFile!NULL)Serial.println(File exsist!);DBG_OUTPUT_PORT.print(Upload: START, filename: ); DBG_OUTPUT_PORT.println(upload.filename);} else if (upload.status UPLOAD_FILE_WRITE) {if (uploadFile) {if(uploadFile.write(upload.buf, upload.currentSize))Serial.println(write Done);}DBG_OUTPUT_PORT.print(Upload: WRITE, Bytes: ); DBG_OUTPUT_PORT.println(upload.currentSize);} else if (upload.status UPLOAD_FILE_END) {uploadFile.close();DBG_OUTPUT_PORT.print(Upload: END, Size: ); DBG_OUTPUT_PORT.println(upload.totalSize);String message Upload Done!\n\n;message URI: ;message server.uri();message \nMethod: ;message (server.method() HTTP_GET) ? GET : POST;message \nArguments: ;message server.args();message \n;for (uint8_t i 0; i server.args(); i) {message NAME: server.argName(i) \n VALUE: server.arg(i) \n;}server.send(200, text/plain, message);updonetrue;}if(updone)if(fileName!)readFile(SD,fileName.c_str());}void deleteRecursive(String path) {File file SD.open((char *)path.c_str());if (!file.isDirectory()) {file.close();SD.remove((char *)path.c_str());return;}file.rewindDirectory();while (true) {File entry file.openNextFile();if (!entry) {break;}String entryPath path / entry.name();if (entry.isDirectory()) {entry.close();deleteRecursive(entryPath);} else {entry.close();SD.remove((char *)entryPath.c_str());}yield();}SD.rmdir((char *)path.c_str());file.close();}void handleDelete() {if (server.args() 0) {return returnFail(BAD ARGS);}String path server.arg(0);if (path / || !SD.exists((char *)path.c_str())) {returnFail(BAD PATH);return;}deleteRecursive(path);returnOK();}void handleCreate() {if (server.args() 0) {return returnFail(BAD ARGS);}String path server.arg(0);if (path / || SD.exists((char *)path.c_str())) {returnFail(BAD PATH);return;}if (path.indexOf(.) 0) {File file SD.open((char *)path.c_str(), FILE_WRITE);if (file) {file.write(0);file.close();}} else {SD.mkdir((char *)path.c_str());}returnOK();}String listDir2Web(fs::FS fs, const char * dirname, uint8_t levels){String message;File root fs.open(dirname);if(!root){message Failed to open directory ;return message;}if(!root.isDirectory()){message Not a directory ;return message;}File file root.openNextFile();while(file){if(file.isDirectory()){message   DIR : ;message String(file.name())String();if(levels){message listDir2Web(fs, file.name(), levels -1);}} else {message String(  FILE: );message String(file.name())String();message String(  SIZE: );message formatBytes(file.size())String();}file root.openNextFile();}return message;}void printDirectory() {String header ;String message header List the file in the SD Card:;message listDir2Web(SD,/,5);server.send(200,text/html,message);}void handleNotFound() {if (hasSD loadFromSdCard(server.uri())) {return;}String message SDCARD Not Detected\n\n;message URI: ;message server.uri();message \nMethod: ;message (server.method() HTTP_GET) ? GET : POST;message \nArguments: ;message server.args();message \n;for (uint8_t i 0; i server.args(); i) {message NAME: server.argName(i) \n VALUE: server.arg(i) \n;}server.send(404, text/plain, message);DBG_OUTPUT_PORT.print(message);}void setup(void) {DBG_OUTPUT_PORT.begin(115200);DBG_OUTPUT_PORT.setDebugOutput(true);DBG_OUTPUT_PORT.print(\n);WiFi.mode(WIFI_STA);//Soft AP Setting/*IPAddress softLocal(192,168,25,1);IPAddress softGateway(192,168,25,1);IPAddress softSubnet(255,255,255,0);WiFi.softAPConfig(softLocal,softGateway,softSubnet);WiFi.softAP(ESP32_5672C,adminadmin);Serial.println(SoftAP IPAdress:WiFi.softAPIP());*///Station SettingWiFi.begin(ssid, password);DBG_OUTPUT_PORT.print(Connecting to );DBG_OUTPUT_PORT.println(ssid);// Wait for connectionuint8_t i 0;while (WiFi.status() ! WL_CONNECTED i 50) {//wait 25 secondsSerial.print(.);delay(500);}if (i 51) {DBG_OUTPUT_PORT.print(Could not connect to);DBG_OUTPUT_PORT.println(ssid);while (1) {delay(500);}}DBG_OUTPUT_PORT.print(Connected! IP address: );DBG_OUTPUT_PORT.println(WiFi.localIP());//Setting sub networkif (MDNS.begin(host)) {MDNS.addService(http, tcp, 80);DBG_OUTPUT_PORT.println(MDNS responder started);DBG_OUTPUT_PORT.print(You can now connect to http://);DBG_OUTPUT_PORT.print(host);DBG_OUTPUT_PORT.println(.local);}server.on(/,handleRoot);server.on(/list, HTTP_GET, printDirectory);server.on(/edit, HTTP_DELETE, handleDelete);server.on(/edit, HTTP_PUT, handleCreate);server.on(/upload,HTTP_GET,handleUploadWeb);server.on(/wifiinfo,HTTP_GET,handleWifiPage);server.on(/wifiset,HTTP_GET,handleSetWifi);server.on(/wifiset,HTTP_POST,handleSetWifi);server.on(/edit, HTTP_POST, []() {returnOK();}, handleFileUpload);server.onNotFound(handleNotFound);server.begin();DBG_OUTPUT_PORT.println(HTTP server started);/*if (SD.begin(SS)) {DBG_OUTPUT_PORT.println(SD Card initialized.);hasSD true;}**/if(!SD.begin()){Serial.println(Card Mount Failed);return;}else{Serial.println(SD Card Ready!);hasSDtrue;}uint8_t cardType SD.cardType();if(cardType CARD_NONE){Serial.println(No SD card attached);return;}Serial.print(SD Card Type: );if(cardType CARD_MMC){Serial.println(MMC);} else if(cardType CARD_SD){Serial.println(SDSC);} else if(cardType CARD_SDHC){Serial.println(SDHC);} else {Serial.println(UNKNOWN);}uint64_t cardSize SD.cardSize() / (1024 * 1024);Serial.printf(SD Card Size: %lluMB\n, cardSize);listDir(SD, /, 0);createDir(SD, /mydir);createDir(SD, /upload);listDir(SD, /, 0);removeDir(SD, /mydir);listDir(SD, /, 2);writeFile(SD, /hello.txt, Hello );appendFile(SD, /hello.txt, World!\n);readFile(SD, /hello.txt);deleteFile(SD, /foo.txt);renameFile(SD, /hello.txt, /foo.txt);readFile(SD, /foo.txt);testFileIO(SD, /test.txt);Serial.printf(Total space: %lluMB\n, SD.totalBytes() / (1024 * 1024));Serial.printf(Used space: %lluMB\n, SD.usedBytes() / (1024 * 1024));}void loop(void) {server.handleClient();}[/mw_shl_code]当然文件上传页是在SD卡目录下面的所以你需要在SD卡新建一个upload目录并且上传一个upload网页这样就可以上传了。下面是那个比较简单的上传页面记得要替换掉那个IP Address变成你自己的目录或者直接去掉[mw_shl_codehtml,true]Choose You Will Upload File:[/mw_shl_code]另外一个版本[mw_shl_codehtml,true]Choose You Will Upload File:[/mw_shl_code]
http://www.pierceye.com/news/998511/

相关文章:

  • 网站用图片做背景搜索引擎推广一般包括哪些
  • 网站首页设计html代码可以发广告的平台
  • 做网站的技术哪个简单泰安吧贴吧
  • 网站制作厂家政务网站开发方案
  • 爱站工具卡片式网站
  • 计算机网站开发图片湛江城乡建设局网站
  • 广州个性化网站开发代做网站关键词
  • 如何开发一个手机网站北京推广网站
  • 企业网站建设合作合同wordpress国产定制主题
  • 万网虚拟机怎么做两个网站网页设计实训步骤
  • 福田做网站公司怎么选择wordpress怎样在列表页使用瀑布流
  • 做导航网站用多大的空间广州天河区有哪些大学
  • 广州市城乡建设部网站首页做婚礼设计在哪个网站下载素材
  • 网站建设推广服务合同范本什么是电子商务专业?
  • 青岛网站建设公司电话棋牌室的网站怎么做
  • 网站更改公司需要重新备案吗传媒网站
  • 海诚网站建设青岛李村网站设计公司
  • 哪个网站可以宣传做的蛋糕网站商城微信支付接口申请
  • 如何做淘客推广网站可信赖的手机网站设计
  • 西城专业网站建设公司哪家好外贸网站优化谷歌关键词排名
  • 先做网站后备案仿做网站可以整站下载器吧
  • ASP.NET实用网站开发 课后答案开发网站过程
  • 做网站需要编码吗仿站网站源码
  • 响应式网站什么意思爱南宁app下载官网最新
  • 自己做的网站怎么添加采集模块网站管理包括哪些内容
  • php做网站验证码的设计电商网站的二级怎么做
  • 广西网站建设价钱微信crm管理系统
  • 福州网站建设公司中小企业荆门市城乡建设管理局网站
  • 建设信用卡网站首页有做车身拉花的网站吗
  • 怎么做婚恋网站织梦网站推广插件