Foros del Web » Programando para Internet » PHP »

Problema al subir archivo Notice: Undefined index: file

Estas en el tema de Problema al subir archivo Notice: Undefined index: file en el foro de PHP en Foros del Web. Hola, soy nuevo y recurro a vuestra ayuda como solución desesperada: Mi problema es que quiero subir un archivo al servidor, y al hacer clic ...
  #1 (permalink)  
Antiguo 10/07/2013, 13:40
 
Fecha de Ingreso: julio-2013
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Problema al subir archivo Notice: Undefined index: file

Hola, soy nuevo y recurro a vuestra ayuda como solución desesperada:

Mi problema es que quiero subir un archivo al servidor, y al hacer clic en el botón, me llega al php, pero el array FILE llega vacío.

Para empezar, en el form no puedo usar action="" porque siempre que lo hago me lleva a una página gris y se queda asi.

Por lo tanto, recurro a javaScript y utilizo ajax con la función click(función).

Os adjunto mi código:


html:

<form id="sendfile" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<div style="margin:6px 0 0 10px;">
<button id="enviararchivo" type="submit" data-theme="b" class="button">
Enviar
</button>
</div>
</form>


javascript:

var sendfile=$('#sendfile');
var enviararchivo=$('#enviararchivo');

$(enviararchivo).click(function(){

$.ajax({
type:'POST',
url: 'enviarArchivo.php',
data:$('#sendfile').serialize(),
success: function(response) {
$('#ContactForm').find('.form_result').html(respon se);


},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});


});


y php;

<?php
var_dump( $_FILES );
session_start();
$variable=$_SESSION["nick"];
echo "Profile picture of $variable ";

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


?>



Por favor, estoy desesperado, ya no sé que más hacer.

Muchas gracias de antemano por vuestra ayuda.


P.D: Disculpad la forma de escribir el código, pero no se hacerlo de otro modo
  #2 (permalink)  
Antiguo 10/07/2013, 13:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 15 años, 3 meses
Puntos: 2135
Respuesta: Problema al subir archivo Notice: Undefined index: file

No puedes enviar archivos con AJAX, al menos no de esa manera, algunas técnicas incluyen un iframe oculto, o un nuevo protocolo que sí permite enviar archivos, pero así no se hace.

No hay forma sencilla de reparar tu código porque es todo incorrecto, solamente puedes enviar archivos usando un formulario normal, o que cambies tu formulario usando HTML5 para enviar archivos usando AJAX (ojo no es soportado en todos los navegadores, solo los más recientes).

Saludos.
  #3 (permalink)  
Antiguo 10/07/2013, 16:06
 
Fecha de Ingreso: julio-2013
Mensajes: 3
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: Problema al subir archivo Notice: Undefined index: file

vale, pero por ejemplo, tengo este otro,

<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

y este es el php

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

se supone que debería darme el nombre, tamaño, etc de ese archivo, pero cuando pulso el boton, me lleva a una página gris, que como he mencionado, creo que es por el action... que puedo hacer??
  #4 (permalink)  
Antiguo 10/07/2013, 20:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 15 años, 3 meses
Puntos: 2135
Respuesta: Problema al subir archivo Notice: Undefined index: file

Esta muy raro eso de la pagina gris, revisa el log de errores de tu Webserver es probable que haya algún error ya que eso de la "pagina gris" no es nada común, lo común es una pagina blanca si no tienes habilitado el reporte de errores (también sería bueno que consideraras habilitar el reporte de errores y mostrar todos).

Saludos.

Etiquetas: file, html, index, notice, undefined, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:59.