查看: 1776|回复: 2

ESP8266 如何保存远程的图片到SPIFFS或SD卡呢

[复制链接]

该用户从未签到

发表于 2018-7-30 17:40 | 显示全部楼层 |阅读模式
楼主有个项目,是需要把远程的图片存到esp8266 的文件系统SPIFFS中
比如获取百度的logo     

使用的是arduino的IDE

程序

File myfile;
void setup( ){
    wifi配置等。 就不重复了
    SPIFFS.begin();

void loop( ) {
     HTTPClient http;
   
     http.begin("http://www.baidu.com/img/bd_logo1.png");

     int Code = http.GET();
     if(Code){
          String payload = http.getString();
          Serial.print(payload);
           myfile=SPIFFS("/bd_logo1.png","w");
           myfile.close();
      }
}

但IDE反馈的信息,只显示了文件的类型png  ,文件也没有保存到本地。请问有大神知道错在哪里?
baidu.jpg

  • TA的每日心情
    慵懒
    2018-11-12 08:58
  • 签到天数: 37 天

    [LV.5]常住居民I

    发表于 2018-8-2 17:34 | 显示全部楼层
    这个我就老熟悉了,debug的语句你自己改下

    kittenblock中小学创客名师推荐的图形化编程软件

    int downloadFromServer(const char *host, int port, const char *url)
    {
      char *filename = strrstr(url, "/");
      if (SPIFFS.exists(filename))
        SPIFFS.remove("fname");
    
      File file = SPIFFS.open(filename, "w");
      if (!file) {
        debugPrintf("Can't open %s !\r\n", filename);
        return -1;
      }
    
      debugPrintf("[HTTP]begin %s:%d/%s\n", host, port, url);
    
      HTTPClient http;
      http.begin(host, port, url);
    
      debugPrint("[HTTP] GET...\n");
      int httpCode = http.GET();
    
      debugPrintf("[HTTP] GET... code: %d\n", httpCode);
      if (httpCode != HTTP_CODE_OK)
      {
        debugPrintf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
        return -2;
      }
    
      int fileLen = http.getSize();
      uint8_t buff[128];
      memset(buff, 0, sizeof(buff));
    
      WiFiClient * stream = http.getStreamPtr();
    
      debugPrintf("get File len:%d\r\n", fileLen);
    
      while (http.connected() && (fileLen > 0 || fileLen == -1))
      {
        size_t size = stream->available();
        if (size) {
          int l = stream->readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size));
          file.write(buff, l);
          if (fileLen > 0) {fileLen -= l;}
        }
      }
    
      file.close();
    
      debugPrint("[HTTP] connection closed or file end.\n");
      http.end();
      return 1;
    }
    文章有帮助,可以请我喝杯咖啡
  • TA的每日心情
    奋斗
    2019-3-13 19:17
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2019-3-9 16:18 | 显示全部楼层
    话说真的可以保存到8266里面吗?
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    有对屏幕了解的大神吗?
    有对屏幕了解的大神吗?
    这种屏幕可以用arduino板或者树莓派做出来吗?小白对这方面一无所知,求指点
    编写了个贪食蛇小程序
    编写了个贪食蛇小程序
    8*8双色3mm红蓝雾状发光二极管 用595驱动的
    Adruino小型自平衡机器人EVA(+硬件+源代码+3D文件)
    Adruino小型自平衡机器人E
    [*]2个月前做的小机器人,在CSDN个人博客上发了,从没接触过PID、3D打印、电机等,就
    超萌机器人  pando
    超萌机器人 pando
    ## 准备工作准备好如下材料: · DFRobot Romeo BLE mini V2.0 控制器 × 1·
    红外模块在接收时码值变动
    红外模块在接收时码值变动
    在使用arduino连接一个红外接收后,下载的红外模块的库IRremote,在使用时发现,遥控
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表