Возможно ли получать загруженные файлы на PHP без сохранения их в файловой системе?

#php #file-upload

#php #загрузка файла

Вопрос:

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

Тогда обычным методом является перемещение этого файла в другое место с помощью move_uploaded_file

Мой вопрос: есть ли способ получить файл в переменной? Таким образом, его не нужно сохранять в файловой системе в любое время?

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

Ответ №1:

 $contents = file_get_contents($_FILES['name']['tmp_name']);
  

Как правило, безопасно оставить временный файл таким, какой он есть, PHP позаботится о его удалении в конце запроса (если PHP не выйдет из строя во время вашего скрипта).

Комментарии:

1. Похоже, что нет никакого способа обойти хотя бы это одно место, где файлы должны храниться.

Ответ №2:

Вероятно, вы можете прочитать временный файл, преобразовать его в Base64 (например) и сохранить в переменной..

Комментарии:

1. Нет необходимости конвертировать в B64, переменные PHP могут содержать двоичные данные.

2. Я предлагал B64 на случай, если он захочет показать это, например, с помощью CSS. Я не знаю, как он будет использовать данные.