¿Cómo obtener la ruta del archivo en html en PHP?

¿Alguien puede decirme cómo obtener el camino del archivo usando html en PHP?

Aquí están mis códigos:

index.php

 

y en csv_to_database.php

 <?php if (isset($_GET['csv_file'])) { $row = 1; if (($handle = fopen($_GET['csv_file'], "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $num = count($data); echo "

$num fields in line $row:

\n"; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . "
\n"; } } fclose($handle); } } ?>

Mi problema es que solo funciona cuando los datos csv están en el mismo directorio que mis archivos php. Creo que necesito obtener la ruta del archivo, pero no sé cómo hacerlo.

No deberías usar el $_GET que tienes ahora. Su archivo se basa en $_FILES["csv_file"]["tmp_name"] .

Lo mejor es que repase este tutorial , que básicamente dice que debe hacer algo como esto:

  0) { echo "Error: " . $_FILES["csv_file"]["error"] . "
"; } else { echo "Upload: " . $_FILES["csv_file"]["name"] . "
"; echo "Type: " . $_FILES["csv_file"]["type"] . "
"; echo "Size: " . ($_FILES["csv_file"]["size"] / 1024) . " Kb
"; echo "Stored in: " . $_FILES["csv_file"]["tmp_name"]; } ?>

Y puedes ir desde allí. Use move_uploaded_file si desea mover el archivo desde la ubicación temporal, también explicado en el tutorial 🙂

Creo que ganarías mucho si echas un vistazo al siguiente enlace: cargas de método POST .

En primer lugar, debe cambiar el método de su formulario para post y agregar enctype="multipart/form-data" .

Luego puede obtener la ruta del archivo temporal desde $_FILES['csv_file']['tmp_name'] .

En su llamada a fopen, use $_GET['csv_file']['tmp_name'] – esto apunta al archivo en el servidor inmediatamente después de la carga.