Size: a a a

2020 August 14

ПК

Побитый Кирпич... in supapro.cxx
Воха
Я затупил, и некорректно задал вопрос. Там функция приёма файлов с html странички, её на самом деле скрипт на страничке дёргает сотни раз, сбрасывая маленькие кусочки передаваемых файлов. Единственный способ определить начало передачи какого-то из файлов, это если присланная позиция в файле (указатель) будет на нулевой байт файла, это можно проверить внутри блока if, и там же создать новый файл на sd карте...
Спасибо за пояснения, вобщем внутри первого if определяющего начало файла создаю static file;, далее при следующих вызовах этой же функции идет копирование в него кусочков, и когда второй if сработает на конец файла, делаю его закрытие
какой то щит
источник

ПК

Побитый Кирпич... in supapro.cxx
почему нельзя это без Static сделать?
источник

В

Воха in supapro.cxx
Побитый Кирпич
почему нельзя это без Static сделать?
Подскажите каким образом. Буду рад попробовать
источник

В

Воха in supapro.cxx
Могу скинуть сюда функцию, или, что надо?
источник

ПК

Побитый Кирпич... in supapro.cxx
Воха
Могу скинуть сюда функцию, или, что надо?
Давай
источник

VD

Vlad Doc in supapro.cxx
Воха
Я затупил, и некорректно задал вопрос. Там функция приёма файлов с html странички, её на самом деле скрипт на страничке дёргает сотни раз, сбрасывая маленькие кусочки передаваемых файлов. Единственный способ определить начало передачи какого-то из файлов, это если присланная позиция в файле (указатель) будет на нулевой байт файла, это можно проверить внутри блока if, и там же создать новый файл на sd карте...
Спасибо за пояснения, вобщем внутри первого if определяющего начало файла создаю static file;, далее при следующих вызовах этой же функции идет копирование в него кусочков, и когда второй if сработает на конец файла, делаю его закрытие
Пришли код, а то объяснение жестяк)))
источник

ПК

Побитый Кирпич... in supapro.cxx
Воха
Я затупил, и некорректно задал вопрос. Там функция приёма файлов с html странички, её на самом деле скрипт на страничке дёргает сотни раз, сбрасывая маленькие кусочки передаваемых файлов. Единственный способ определить начало передачи какого-то из файлов, это если присланная позиция в файле (указатель) будет на нулевой байт файла, это можно проверить внутри блока if, и там же создать новый файл на sd карте...
Спасибо за пояснения, вобщем внутри первого if определяющего начало файла создаю static file;, далее при следующих вызовах этой же функции идет копирование в него кусочков, и когда второй if сработает на конец файла, делаю его закрытие
Короче ты  сделал из своей функции сопрограмму. Лучше попытаться реализовать это через доп. параметр "контекст", который будет хранить текущий стейт в том числе файл.
источник

ПК

Побитый Кирпич... in supapro.cxx
Под контекстом может быть и this, тогда это метод будет
источник

ПК

Побитый Кирпич... in supapro.cxx
Тут всё зависит от того  как со скриптом взаимодействие происходит
источник

В

Воха in supapro.cxx
void onUpload(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) {
 

  if(!index){

dbg("Начало аплоада файла: ");
   
static File file = SD.open(fullpath);

  }

   if(final){


dbg("Конец аплоада файла: ");

file.close(); //закрываем файл

   }


}

где:
index - указатель, с какого байта писать "кусочек" в файл

len - длина "кусочка" файла

data - сам массив ("кусочек"), который буду копировать через memcpy вне блоков if
источник

ПК

Побитый Кирпич... in supapro.cxx
Воха
void onUpload(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) {
 

  if(!index){

dbg("Начало аплоада файла: ");
   
static File file = SD.open(fullpath);

  }

   if(final){


dbg("Конец аплоада файла: ");

file.close(); //закрываем файл

   }


}

где:
index - указатель, с какого байта писать "кусочек" в файл

len - длина "кусочка" файла

data - сам массив ("кусочек"), который буду копировать через memcpy вне блоков if
Это метод?
источник

В

Воха in supapro.cxx
Побитый Кирпич
Тут всё зависит от того  как со скриптом взаимодействие происходит
он просто вызывает функцию, которую я написал, пока не передаст файл целиком
источник

В

Воха in supapro.cxx
Побитый Кирпич
Это метод?
это я просто написал такую функцию, без класа
источник

В

Воха in supapro.cxx
её вызывает другая функция, которую дёргает веб-клиент
источник

ПК

Побитый Кирпич... in supapro.cxx
Воха
это я просто написал такую функцию, без класа
Ты можешь её написать так, чтобы у неё был параметр "контекст"?
источник

ПК

Побитый Кирпич... in supapro.cxx
или сделать его методом
источник

VD

Vlad Doc in supapro.cxx
Воха
void onUpload(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final) {
 

  if(!index){

dbg("Начало аплоада файла: ");
   
static File file = SD.open(fullpath);

  }

   if(final){


dbg("Конец аплоада файла: ");

file.close(); //закрываем файл

   }


}

где:
index - указатель, с какого байта писать "кусочек" в файл

len - длина "кусочка" файла

data - сам массив ("кусочек"), который буду копировать через memcpy вне блоков if
Просто передай файл в неё
источник

VD

Vlad Doc in supapro.cxx
Файл храни уже как хочешь
источник

VD

Vlad Doc in supapro.cxx
Статик, глобалка, синглтон.
источник

VD

Vlad Doc in supapro.cxx
Просто у тебя функция что пишет в файл много на себя берёт
источник