Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

SD WEB SERVER и название файлов на флешке

Тема в разделе "ESP8266 Arduino IDE", создана пользователем Tirarex, 14 дек 2016.

  1. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    И так, залил я сэмпл SD веб сервера, подключил флешку на 4гб (отформатированную в FAT и предварительно пополненную контентом)

    Вызвал список файлов командой "http://192.168.0.50/list?dir=/"
    и получил такой список
    [{"type":"dir","name":"SYSTEM~1"},{"type":"dir","name":"FILES"},{"type":"file","name":"ARDU~1.HTM"},{"type":"file","name":"CONTEN~1.HTM"},{"type":"file","name":"GAME~1.HTM"},{"type":"file","name":"XORS~1.HTM"}]

    Вроде все файлы на месте но есть один минус, вместо названия "xors.html" , я получаю файлы с названиями "XORS~1.HTM"
    Куда уходит последняя буква в HTML и откуда берется ~1, для меня загадка.
    Возможно кто то приоткроет эту тайну ?

    Все что изменил в коде сэмпла - добавил пару строк
    else if(path.endsWith(".HTM")) dataType = "text/html";
    else if(path.endsWith(".html")) dataType = "text/html";


    p.s. А еще многие сэмплы предлагают заходить на "http://esp8266sd.local"
    который не открывается.


    [​IMG]
     
  2. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.285
    Симпатии:
    1.350
    Включите чтение длинных имен, а не формат «8.3».
     
    086dx66 нравится это.
  3. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    @pvvx
    Как я понимаю, это делается в браузере ?

    Сам вопрос по сути решен, после корректировки кода все заработало и сервер отвечает на нормальные имена файлов, но в листе отображается этот ужас.
     
  4. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Вопрос видимо в FAT. Для длинных имен наверно все таки надо FAT32. В FAT длинные имена хранятся именно в таком виде. Спасибо передавайте дедушке Биллу.
     
    Tirarex нравится это.
  5. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.285
    Симпатии:
    1.350
    Это не зависит от типа FAT. Длинные имена ввели позже и они вписываются в другом формате и месте... При распечатке надо указать какие выводить.
    Сделано это для совместимости с древним оборудованием до выхода нового формата FAT, а не Биллом. :)
    Ответить точнее нет возможности - автор темы не указал, какие либы он использует.
     
  6. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    @Юрий Ботов
    Форматировал флешку в Fat32 (Ранее была в Fat тк ардуина не умела в другие форматы, думал с есп так же), проблемы с листом файлов пропали!
    Cпасибо !

    [{"type":"dir","name":"SYSTEM~1"},{"type":"file","name":"FAVICON.ICO"},{"type":"file","name":"GAME.HTM"},{"type":"file","name":"INDEX.HTM"},{"type":"file","name":"LOGIN.HTM"},{"type":"file","name":"ROBOTS.TXT"},{"type":"file","name":"XORS.HTM"},{"type":"dir","name":"FILES"},{"type":"file","name":"ARDU.HTM"}]
     
  7. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    Проблема вернулась при использовании папок =D
    Код (Text):
    1. [{"type":"file","name":"COMMAN~1.HTM"},{"type":"file","name":"COMMAN~2.HTM"},{"type":"file","name":"COMMAN~3.HTM"},{"type":"file","name":"COMMAN~4.HTM"},{"type":"file","name":"CO6275~1.HTM"},{"type":"file","name":"CO72D8~1.HTM"},
    Код как и говорил ранее - сэмпл SDWEB SERVER

    Подключенные библиотеки
    Код (C):
    1. #include <ESP8266WiFi.h>
    2. #include <WiFiClient.h>
    3. #include <ESP8266WebServer.h>
    4. #include <ESP8266mDNS.h>
    5. #include <SPI.h>
    6. #include <SD.h>
     
  8. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    The library supports FAT16 formatted SD cards up to 2GB in size. 4GB FAT16 formatted SD cards might work, but is untested. Long filenames are not supported. Keep your filenames compliant with the old 8.3 standard. The SD card should be connected to the SPI-pins on your Arduino. Pin connections are available in the documentation in the download.
    NOTE: This library worked well with a 1GB SD card that was formatted FAT16. This library will NOT work with larger cards that are formatted FAT32.
     
  9. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    А если серьезно: какая ИМЕННО библиотека используется? Какая ИМЕННО карточка используется. Длинные имена файлов ТОЧНО НУЖНЫ?
     
  10. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    Библиотека - трудно сказать ибо отдельно я их не ставил, а это значит что она шла дефолтно в поставке с esp8266 sdk / arduino ide.

    Флешка Noname MicroSD HC 6Class 4GB, форматирована в FAT32 (свободно 3,9гб с мелочью).

    Длинные имена файлов нужны для того что бы не трогать архив сайта, который будет лежать на флешке (бэкап хэлперов к старым движкам).

    Как я понимаю, нужно искать другую либу ?
     
  11. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Проще поискать другую карточку :)
     
  12. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    Тс проблема не в библиотеке, не в коде, а в карточке ?
    На пк все отображается нормально, на смартфоне так же.
     
  13. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Библиотека построена не на реальный fat а на усеченный. Исходя из описания библиотеки она поддерживает карточки до 2 Гб на fat16 или до 1 Гб на fat32. И никому не обязана работать с карточками большего размера. Также и длинные имена она толком не поддерживает. Поэтому самый простой способ: взять карточку поменьше и переименовать файлы в 8.3 (8 букв имя, точка, 3 буквы расширение). Ну или если лениво - то искать/переписывать библиотеку.
     
    Tirarex нравится это.
  14. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    Спасибо за ответ, значит буду менять названия файлов, а так вроде с fat32 проблем нет, файлы работают.
     
  15. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    10.285
    Симпатии:
    1.350
    Последнее редактирование: 16 дек 2016
    Tirarex нравится это.
  16. pet

    pet Новичок

    Сообщения:
    49
    Симпатии:
    2
    подскажите плиз! на флэшке страница на бутстрапе + js+ jqwery ну и прочие прибамбасы-всё разложено по полочкам, ESP SoftAP mode, при загрузке индексовой страницы приходит запрос на фаил ресурса, и видимо стэк переполняет (уходит в софтВДТ), пишу под ардуино ide/ платка nodeMCU с ESP 12f модулем на борту!
    НЕПОНИМАЮ как можно обойти ограничения??? И можно ли???
     
  17. Tirarex

    Tirarex Новичок

    Сообщения:
    12
    Симпатии:
    0
    Для Бутстрапа используй js+css из паблик cdn и проблем не будет, у меня жирная страница выдается нормально Tirarex's site
     
  18. pet

    pet Новичок

    Сообщения:
    49
    Симпатии:
    2
    я не совсем понял что вы имели ввиду? пилить всё в один фаил??
    так я использую библиотеку Bootstrap, там и стили и скрипты прописаны. проблема возникла с подгрузкой файлов.
    библиотека весит больше 500кб и на ней модуль не вывозит и уходит в ребут, выкидывая при этом стэк в консоль.

    подскажите люди добрые, как такое с флэшки клиенту отослать????
    может там ограничения по размеру есть? или по времени загрузки? и может ли эту проблему решить udp сервер??
     
  19. pet

    pet Новичок

    Сообщения:
    49
    Симпатии:
    2
    Tirarex, так как вы с файлами разобрались? или не разобрались???
    я в похожей ветке нашёл вырезку из библиотеки
    Код (Text):
    1. #define    _USE_LFN    0        /* 0 to 3 */
    2. #define    _MAX_LFN    255        /* Maximum LFN length to handle (12 to 255) */
    3. /* The _USE_LFN option switches the LFN feature.
    4. /
    5. /   0: Disable LFN feature. _MAX_LFN has no effect.
    6. /   1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
    7. /   2: Enable LFN with dynamic working buffer on the STACK.
    8. /   3: Enable LFN with dynamic working buffer on the HEAP.
    9. /
    10. /  When enable LFN feature, Unicode handling functions ff_convert() and ff_wtoupper()
    11. /  function must be added to the project.
    12. /  The LFN working buffer occupies (_MAX_LFN + 1) * 2 bytes. When use stack for the
    13. /  working buffer, take care on stack overflow. When use heap memory for the working
    14. /  buffer, memory management functions, ff_memalloc() and ff_memfree(), must be added
    15. /  to the project. */
     
  20. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.055
    Симпатии:
    177
    Вам предложили уже: пусть клиент забирает бутстрап не у вас а снаружи...
    HTML:
    1. ...
    2. <link href=" https://yastatic.net/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    3. <script src=" https://yastatic.net/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    4. ...
    5. </head>
    6. ...
    7. </body>
    8. </html>
     

Поделиться этой страницей