2011-04-28 56 views
5

¿Alguien puede decirme cómo obtener la ruta de archivo usando html <input type="file"> en PHP?¿Cómo obtener la ruta del archivo en html <input type = "file"> en PHP?

Éstos son mis códigos:

index.php

<form action="csv_to_database.php" method="get" > 
<input type="file" name="csv_file" /> 
<input type="submit" name="upload" value="Upload" /> 
</form> 

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 "<p> $num fields in line $row: <br /></p>\n"; 
    $row++; 
    for ($c=0; $c < $num; $c++) { 
     echo $data[$c] . "<br />\n"; 
    } 
    } 
    fclose($handle); 
    } 

} 
?> 

Mi problema es que sólo funciona cuando los datos CSV se encuentra en la misma directorio como mis archivos php. Creo que necesito obtener la ruta del archivo, pero no sé cómo hacerlo.

+0

http://php.net/manual/en/features.file-upload.php –

Respuesta

6

Usted no sólo debe utilizar el $_GET que tienes ahora. Su archivo se basa en $_FILES["csv_file"]["tmp_name"].

mejor que revise this tutorial, que básicamente dice que usted tiene que hacer algo como esto:

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

y se puede ir desde allí. Utilice move_uploaded_file si desea mover el archivo desde la ubicación temporal, explicó también en el tutorial :)

1

Creo que ganaría mucho de echar un vistazo al siguiente enlace: POST method uploads.

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

A continuación, se puede obtener la ruta del archivo temporal de la $_FILES['csv_file']['tmp_name'].

-1

En su llamada a fopen, utilice $_GET['csv_file']['tmp_name'] - esto apunta al archivo en el servidor inmediatamente después de cargar.

Cuestiones relacionadas