Estoy tratando de que mi código lleve el nombre de un archivo que el usuario carga (con el código a continuación) y, después de cargarlo, imprimo la cadena "Su archivo thefilename.txt ha sido cargado" en la pantalla, pero la línea se imprime sin valor a thefilename.txt la línea es simplemente: "Su archivo ha sido cargado", lo probé con una entrada de texto y contenía los datos, pero no el nombre del archivo, ¿alguna ayuda?

Index.php:

<form action="uxV637__.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file_to_upload" id="file_to_upload"><br>
    <input type="submit" value="Upload"><br>
</form>

UxV637 __. php:

<?php
    $fname_ = $_POST['file_to_upload'];
    echo "Your file ".$fname_." has been uploaded...";
    echo "Text is: ".$_POST['text'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $fname = substr(md5(microtime()),rand(0,26),5);
    move_uploaded_file($_FILES["file_to_upload"]["tmp_name"], "uploaded_files/".$fname.".txt.safe");
?>
0
John Doe 21 oct. 2017 a las 21:57

3 respuestas

La mejor respuesta

Desea utilizar la matriz superglobal $_FILES, específicamente , la tecla name de la matriz correspondiente a su campo de archivo.

Por ejemplo, en su código, el campo del archivo input se llama file_to_upload, por lo que accedería al nombre del archivo usando $_FILES['file_to_upload']['name'], así:

echo "Your file " . $_FILES['file_to_upload']['name'] . " has been uploaded...";

Consulte la explicación de la matriz $_FILES en la documentación.

1
elixenide 21 oct. 2017 a las 19:06
$('form').on('submit', function(){
 var name = $('input[type=file]').val()
 $('#inputHidden').value(name)
})   

Simplemente tome el evento de envío con jquery y agréguelo como un valor en un tipo de entrada oculto

-1
NEOJPK 21 oct. 2017 a las 19:09

Debería usar $_FILES variable reservada cuando maneje cargas de archivos, no $_POST.

Solo tienes que reemplazar esto:

$fname_ = $_POST['file_to_upload'];

Con:

$fname_ = $_FILES['file_to_upload']['name'];

Consulte la documentación de la variable reservada $_FILES: http://php.net/manual/en/reserved.variables.files. php

2
Abdullah R. 21 oct. 2017 a las 19:05