Realmente quiero saber cómo voy a obtener la ruta de archivo completa cuando cargo un archivo en PHP?¿Cómo obtener un archivo completo al cargar archivos en PHP?
Aquí es mi mi problema ...
Estoy importando un archivo CSV en PHP. Cargar un archivo no es un problema, pero la función utilizada para importar archivos csv que es fgetcsv() requiere fopen. fopen es el que me causa dolor de cabeza porque requiere un archivo de ruta exacto, lo que significa que el archivo debe estar en el mismo directorio con el archivo php. ¿Qué pasa si el usuario obtiene un archivo de un directorio diferente?
Aquí está mi códigos:
index.php
:
<form action="csv_to_database.php" method="POST" enctype="multipart/form-data">
<input type="file" name="csv_file" />
<input type="submit" name="upload" value="Upload" />
</form>
csv_import.php
:
<?php
if ($_FILES['csv_file']['error'] > 0) {
echo "Error: " . $_FILES['csv_file']['error'] . "<br />";
}else{
if (($handle = fopen($_FILES['csv_file']['name'], "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
for ($c=0; $c < count($data) ; $c++) {
echo $data[$c] . " ";
}
echo "<br />";
}
fclose($handle);
}
}
?>
fopen aquí sólo se puede obtener el nombre del archivo que se hace pasar por la variable $_FILES['csv_file']['name']
. Estaba intentando obtener cualquier función para obtener el archivo completo de $ _FILES en Internet, pero no puedo encontrar ninguno.
Soy muy nuevo en el desarrollo web así que pls sea paciente. Respuesta de Pls lo más simple posible ... Pls ayuda ...
Si haces una print_r ($ _ FILES) verás que hay mucho más información que puedes usarPor ejemplo $ _FILES ['csv_file'] ['tmp_name'] que contiene la ruta completa (temporal) de su archivo cargado. 'fopen' puede hacer cosas con esto. Ver también http://www.php.net/manual/en/features.file-upload.post-method.php – vindia
@vindia Creo que $ _FILES ['csv_file'] ['tmp_name'] muestra dónde almacenar temporalmente el archivo cargado en el servidor. Lo que estoy preguntando es el camino de archivo de la fuente. –
No obtiene el recorrido de archivo de la fuente. **Nunca**. Los navegadores filtran por razones de seguridad/privacidad. @vindia estaba señalando el error de funcionalidad en tu código. No puede utilizar la ruta del archivo de clientes en el servidor de todos modos. Eso es dos sistemas de archivos diferentes, la misma ruta no va a funcionar. – mario