Use a statically assigned double medium sized sram buffer in combination with a large external flash prom spi or i2c.
Write first buffer till full set flag switch to second buffer and write the contents of the first buffer to the external flash memory (verify written data) then delete first buffer.
When second buffer full , switch to first buffer for storing and save the second to ext flash, etc etc.
Make sure the size of your sram buffer is aligned with the flash page size, so for instance if your flash page size is 2kB choose 2kB or 4kB or 6kB etc.