#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. Я не знаю, как он будет использовать данные.