Уничтожается ли tmp_name, когда пользователь переходит на другую страницу php? - PullRequest
1 голос
/ 13 марта 2012

Будет ли $_FILES["file_name"]["tmp_name"]; уничтожен, если пользователь перейдет на другую страницу php?

Я пытаюсь передать имя tmp_name в скрытом поле формы фактической функции отправки, где имя tmp_ скопируется на сервер.

Итак, это мой поток: Пользователь отправляет формы -> Пользователь подтверждает отправку (все $ _POST добавляются в скрытые поля) -> После подтверждения данные отправляются, и файл copy() на сервер

1 Ответ

5 голосов
/ 13 марта 2012

Загрузка файлов работает следующим образом:

  • пользователь отправляет форму, загружая файл на сервер
  • PHP сохраняет полученные данные файла в каталоге / tmp, помещая имя файла в массив $_FILES скрипта
  • PHP выполняет ваш скрипт, вы делаете с данными все, что хотите
  • когда ваш скрипт будет выполнен, PHP очистит данные загруженного файла из каталога / tmp, если он там еще существует

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

И не передавайте это местоположение файла пользователю, даже через скрытые поля формы. Это данные на стороне клиента, что означает, что пользователь может манипулировать данными и, возможно, вызвать нарушения безопасности, указав путь к файлу там, где у него нет бизнеса.

...