Страница 1 из 1

TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 01.07.2025 13:44:34
vk_barnaul
Использую TFPHttpServer.
Потребовалось принимать файлы от пользователей.
Вопросов нет - пример есть в fpcsrc\packages\fcl-web\examples\fptemplate\fileupload\webmodule\webmodule.pas
Принимаю, делаю что хочу без проблем.
Сервер при обработке post запроса от клиента прекрасно все "раскладывает" на файлики и создает их в temp директории.
В примере показано как до них добраться и СКОПИРОВАТЬ.
При окончании обработки сервер за собой не убирает эти временные файлы.
Нигде про это ни слова не сказано.
Так же они останутся если поступит некоторый запрос, который я хочу "проигнорировать".
Более того даже существует пусть protect, но живой и рабочий метод у соответствующих классов - DeleteTempUploadedFiles.
Но вот только его никто не вызывает.
Теперь вопрос - где я не правильно понял идеологию пакета fcl-web?
Логично бы было при освобождении этих классов убирать за собой и временные файлы :)

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 02.07.2025 08:21:53
grot
vk_barnaul писал(а):Теперь вопрос - где я не правильно понял идеологию пакета fcl-web?


Идеология OSS простая - тебе дали исходники? дальше - "Сделай сам!"

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 03.07.2025 10:10:39
DedFrend
А что тогда делать тем, что захочет снова с ними поработать?

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 04.07.2025 03:26:12
vk_barnaul
я использую следующий костыль:
...
type TMyRequest = Class(TFPHTTPConnectionRequest);

в конце обработки события OnRequest
вызываю TMyRequest(ARequest).DeleteTempUploadedFiles;

Еще из недокументированного - чтобы изменить temp директорию для этих самых upload файлов надо изменить class const
TRequest.DefaultRequestUploadDir := 'МОЯ СУПЕР ПАПКА ДЛЯ ВХОДЯЩИХ ФАЙЛОВ';

P.S. По поводу идеологии - я не питаю иллюзий что за меня должны были все сделать "красиво". Основной вопрос был именно в возможном "недопонимании организационной структуры".

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 04.07.2025 12:04:45
sts
по хорошему чистить временные файлы должна служба операционной системы после завершения программ, ведь файл может быть открыт другой программой, (мем) нельзя просто так удалить временные файлы

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 04.07.2025 16:59:40
Максим
Я бы предложил написать в багтрекер FPC.

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 05.07.2025 06:24:44
Снег Север
Максим писал(а):Я бы предложил написать в багтрекер FPC.

Тут нет бага. Есть хотелки пользователя, которые он должен удовлетворять сам.

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 05.07.2025 16:52:57
Sharfik
sts писал(а):по хорошему чистить временные файлы должна служба операционной системы после завершения программ, ведь файл может быть открыт другой программой, (мем) нельзя просто так удалить временные файлы

После завершения? Сервер может год работать без остановки. Место кто под это выделит? Тут просто вести список принятых и обработанных файлов надо, с таймаутом. Если есть отметка что принятый файл обработан, то удаляем, если таймаут на обработку прошел, то так же удаляем.

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 06.07.2025 14:40:07
sts
Sharfik писал(а):После завершения? Сервер может год работать без остановки. Место кто под это выделит?

судя по тому что пишет тс, он ожидает что будут удалятся после закрытия программы.
тут базовая реализация компонента веб сервера, естественно разработчик программы в которой он используется сам решает когда должны удалятся временные файлы.
по хорошему базовый компонент вообще не должен создавать файлы, у него должно быть свойство, типа хранилище файлов с соответствующим апи, а программист реализует его так как он считает нужным, и пример реализации.

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 07.07.2025 06:32:27
vk_barnaul
sts писал(а):судя по тому что пишет тс, он ожидает что будут удалятся после закрытия программы.


я хотел, чтобы создание файлов во временной директории было как минимум документировано.

для себя я реализовал удаление по закрытию сокета.

Re: TFPHttpServer и удаление временных файлов

СообщениеДобавлено: 08.07.2025 09:03:55
sts
vk_barnaul писал(а):я хотел, чтобы создание файлов во временной директории было как минимум документировано.

в мире паскаля както сложилось что исходники и являются документацией, когда исходников нет то да есть хелп с описанием.

Добавлено спустя 2 минуты 17 секунд:
последние 20 лет мода на чтото аля jаvadoc, в итоге совершенно идиотская документация типа getItem - получить элемент, это и так понятно

Добавлено спустя 14 минут 8 секунд:
кстати доку я чтото не нашел, вы надеюсь не считаете ту страничку на вики докой.