Константин Китманов: Не так. Вы невнимательно прочитали вопрос топикстартера. У него процесс загрузки файла разделен на 2 шага: загрузка файла в /temp/ и последующее сохранение (пользователь жмет "Сохранить"). Когда файл полностью загрузился на сервер, он не будет залоченным. Сохранение файла в его сценарии просто мувит его в директорию постоянного хранения. Поэтому после загрузки в /temp/ файл успешно может быть удален по крону. Когда пользователь созреет, нужного файла для перемещения может попросту не оказаться.
> Не говоря уж о том, что приведенную мной команду можно исправить так, чтобы она удаляла файлы только старше определенного возраста.
Посмотрите исходник страницы в браузере, корректно ли выводится. С точки зрения php все корректно. Экранировать нужно потому что апострофы в вашем коде являются обозначением начала и конца строки. А если внутри такой 'строки' нужно отобразить сам апостроф (который является служебным символом), необходимо поставить перед ним бэкслеш, тогда он будет частью этой строки.
А не получите таким образом состояние гонки? Это не самое лучше решение. Вы будете сталкиваться с ситуацией, когда пользователь будет пытаться сохранить файл, которого на сервере уже нет. Цикл такой: файл загружен -> крон вычистил временные файлы -> пользователь нажал сохранить и получил ошибку что файла нет, в то время как он может наблюдать состояние успешной загрузки на своем экране.
Не соглашусь с вами по одной причине — сервер всегда должен проверять данные клиента на валидность. Без этого читерство в вашем царстве будет цвести и пахнуть.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.