This is save function. if I open file in the temporary dir from server, it works. But after download, I have error "The file is damaged" . I try to restore the file and afrer restoring all ok. Where is error?

flush() may not be able to override the buffering scheme of your web server and it has no effect on any client-side buffering in the browser. It also doesn't affect PHP's userspace output buffering mechanism. This means you will have to call both ob_flush() and flush() to flush the ob output buffers if you are using those.