Целесообразно ли захватывать загруженные файлы из своего временного местоположения? - PullRequest
2 голосов
/ 26 июля 2011

Я строю систему, в которой пользователь может загружать файл в виде данных (не для постоянного хранения, а только для содержимого). Теперь мне интересно, будет ли разумно извлекать содержимое файлов из временного местоположения, предоставленного PHP, например:

file_get_contents($_FILES['file']['tmp_name'])

Отлично работает на локальном хосте, но, боюсь, на хостинге могут возникнуть проблемы с разрешениями и т. Д.? Любая помощь приветствуется.

Ответы [ 4 ]

6 голосов
/ 26 июля 2011

единственный шанс для вас получить данные, прочитав файл, указанный в переменной 'tmp_name'.Там нет другого способа сделать это.PHP помещает туда файл для вас, так что вы можете быть уверены, что он читаемый.Если это не так, конфигурация сервера нарушена.

1 голос
/ 26 июля 2011

Это общепринятый способ сделать это.Предполагая, что местоположение upload_tmp_dir является тем, которое доступно для чтения / записи всему миру (которое должно быть принято для загрузки), вы сможете прочитать его, как только оно будет загружено.

1 голос
/ 26 июля 2011

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

Если вы хотите переместить загруженный файл в новое место, вы должны использовать move_uploaded_file .

0 голосов
/ 26 июля 2011

Насколько я понимаю, вы можете в значительной степени гарантировать, что файлы в каталоге tmp будут живы, по крайней мере, до тех пор, пока этот процесс PHP не умрет, однако я бы использовал fopen() вместо file_get_contents.

Что касается разрешений, этот процесс PHP будет записывать туда файл из заголовков, так что вы можете на 100% гарантировать, что тот же процесс также имеет доступ для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...