Получение полного PATH загруженного файла – PHP

У меня есть форма (HTML, PHP), которая позволяет конечному пользователю загружать файл для обновления базы данных (MySQL) с записями в загруженном файле (в частности .csv). Однако в phpscript я могу получить только имя файла, а не полный путь к файлу. По этой причине fopen () не работает. Может кто-нибудь, пожалуйста, дайте мне знать, как я могу работать над поиском полного пути?

Код HTML:

<html> <head> </head> <body> <form method="POST" action="upload.php" enctype="multipart/form-data"> <p>File to upload : <input type ="file" name = "UploadFileName"></p><br /> <input type = "submit" name = "Submit" value = "Press THIS to upload"> </form> </body> </html> 

PHP-скрипт:

 <?php ..... ...... $handle = fopen($_FILES["UploadFileName"]["name"], "r"); # fopen(test.csv) [function.fopen]: failed to open stream: No such file or directory ?> 

name ссылается на имя файла на стороне клиента . Чтобы получить имя файла (включая полный путь) на стороне сервера , вам нужно использовать tmp_name :

 $handle = fopen($_FILES["UploadFileName"]["tmp_name"], 'r'); 

Используйте следующий код,

 $handle = fopen($_FILES["UploadFileName"]["tmp_name"], 'r'); 
 $target='uploads/'.basename($_FILES['UploadFileName']['name']); if(move_uploaded_file($_FILES['UploadFileName']['tmp_name'],$target)) { //Insert into your db $fp = fopen($target, "r"); } 

Я писал так:

 $filePath = realpath($_FILES["file"]["tmp_name"]); 

Это дало мне полный путь к загруженному файлу в PHP. Если вы находите ошибку 0 байтов в загрузке файла, просто измените эту строку длины содержимого так, как это

 header("Content-Length: ".filesize($filePath)); 

Где $ filePath должен быть абсолютным путем для файла, а не только для дескриптора файла.