2013-06-26 6 views
0

Я хочу, чтобы иметь возможность читать загруженный файл, но я не хочу, чтобы файл был сохранен на сервере из-за проблем с безопасностью ... Возможно ли просто прямо читать файл в переменную?Чтение загруженного файла в переменную вместо сохранения

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

+0

прочитав, что вы хотите получить тип, размер и имя файла и т. Д.? –

ответ

2

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

Temp ОЧЕНЬ небезопасен, как правило, любой в системе может читать/записывать/удалять временный файл.

Лучший способ сделать это - просто выполнить обычную загрузку файла, а в вашем сценарии отправки либо прочитать файл, либо обработать его, либо перенести его в более постоянное место. Теперь вы можете отправить команду delete в tmp-копию.

Поскольку у вас может не быть разрешения на удаление и/или файл может быть удален автоматически, лучше всего выдать команду таким образом (символ @ подавляет любые ошибки, поскольку вам все равно, если файл уже удален или то, что нет, это «на всякий случай» сценарий)

@unlink($filename); 
+0

Отличный ответ! Благодаря! Что произойдет, если два имени файла совпадают, просто ли он перезаписывает старый файл? –

+0

Исправить. Он перезапишет старый файл. –

0

насколько я знаю, он должен быть где-то хранить, чтобы взаимодействовать с ним, но он удаляется, как только закончит сценарий выполнения. См. PHP: When does the temporary uploaded files get deleted?

+0

Лучше быть в безопасности, чем сожалеть, и выпустить @unlink ($ filename); на всякий случай – TravisO