tengo un problema que he intentado resolver de todas las formas posibles y no lo consigo.
Tengo un formulario para subir un archivo y que éste se guarde en una base de datos MySQL.
El formulario es el siguiente:
Código HTML :
<form name="formularioAddFiles" enctype="multipart/form-data" action="<?php echo "./addFiles.php?name=" . $auxName; ?>" method="POST"> <div data-role="fieldcontain"> <label for="titulo"> Title for your file </label> <input name="titulo" data-mini="true" type="text" required> </div> <div data-role="fieldcontain"> <label for="labelFile"> Choose a file to upload </label> <input type="file" name="fichero" data-mini="true" > </div> <input type="submit" data-theme="e" name="addFile" data-mini="true" value="Upload file" > </form>
Lo que hago es tener un input de tipo file y que al pulsar el botón "Upload file" se cargue un script php del mismo fichero. El script php es el siguiente:
Código PHP :
if (isset($_POST['addFile'])) { // Check if a file has been uploaded [b] if (isset($_FILES['fichero']))[/b] { // Make sure the file was sent without errors if ($_FILES['fichero']['error'] == 0) { // Gather all required data $name = $con->real_escape_string($_FILES['fichero']['name']); $mime = $con->real_escape_string($_FILES['fichero']['type']); $data = $con->real_escape_string(file_get_contents($_FILES ['fichero']['tmp_name'])); $size = intval($_FILES['fichero']['size']); $title = $_POST['titulo']; // Create the SQL query $query = "INSERT INTO Files (ideaName, solver, fileName, title, mime, size, content) VALUES ('$auxName','$solverActual','$name','$title','$mime','$size','$data')"; // Check if it was successfull if (mysqli_query($con, $query)) { $mensaje = 2; } else { $mensaje = 3; } } else { $mensaje = 4; } } [b]else { $mensaje = 5; }[/b] }
Tengo problemas en la línea en negrita, ya que, aunque cargue un fichero en el formulario, siempre va al else marcado en negrita al final y no entiendo porque... el resto del codigo no se si estará bien pero ni siquiera consigo que entre en esa parte.
Si hago un
Código PHP :
print_r($_FILES['fichero']);me imprime un array vacío. He mirado el php.ini y he comprobado el tamaño de los ficheros que admite... he probado mil cosas y ya no se que hacer. ¿Alguna idea?
Gracias.