Foros del Web » Programando para Internet » PHP »

Consulta con $_FILES

Estas en el tema de Consulta con $_FILES en el foro de PHP en Foros del Web. Tengo un formulario de este tipo: en funciones.php function traeInputDinamico(){ $tabla = "<form id='archivosTodos' name='id='archivosTodos' method='POST' enctype='multipart/form-data'>"; $tabla .= "<table id='misArchivos' align='rigth'><tr>"; $tabla .= "<input ...
  #1 (permalink)  
Antiguo 14/02/2011, 08:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 100
Antigüedad: 13 años, 2 meses
Puntos: 0
Consulta con $_FILES

Tengo un formulario de este tipo: en funciones.php

function traeInputDinamico(){

$tabla = "<form id='archivosTodos' name='id='archivosTodos' method='POST' enctype='multipart/form-data'>";
$tabla .= "<table id='misArchivos' align='rigth'><tr>";
$tabla .= "<input type='hidden' name='cuenta' id ='cuenta' value='1'><td>";
$tabla .= "<input type='file' id='archivo1' name='archivo1'>";
$tabla .= "</td>";
$tabla .= "<td><a href='#' onClick='aumentaFile()'><img src='../../img/mas.jpg'>agrega</a></td>";
$tabla .= "<td>";
$tabla .= "<input type='button' value='Envia datos' onClick='enviaDatosInput(this.form)'></td></tr></table>";
$tabla .= "<div id='ven'></div>";
$tabla .= "</form>";
return $tabla;

}


luego desde funciones.js recupero los datos de esta forma:

function enviaDatosInput(form){

formulario = form;
formulario.action = 'controlador.php?mod=11';
ajaxpost(formulario);

}

luego voy al controlador.php al cual le llegan todas las variables.... asi

$cuenta = $_POST['cuenta'];
$sube = $_FILES['archivo1'];


pero cuando deseo imprimir el sube no pasa nada, si hago un print_r a $_FILES me entrega Array().. y nada mas..!! en intentado asi $HTTP_POST_FILES['archivo1']['name']; y tampoco me devuelve nada... todos las otras casillas del formulario las recivo sin ningun problema.. excepto la de FILEs..

si puede ayudarme se los agradesco.. !A! lo que quiero es rescatar la direccion o el path del archivo..!!
  #2 (permalink)  
Antiguo 14/02/2011, 08:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 100
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Consulta con $_FILES

aa y aprete la tecla del lado..!! es "RECIBO"
  #3 (permalink)  
Antiguo 14/02/2011, 08:53
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Consulta con $_FILES

Haz intentado arreglar esto?

name='id='archivosTodos' => name='...' id='...'

Tambien deberias poner el codigo de la funcion ajaxpost

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #4 (permalink)  
Antiguo 14/02/2011, 09:03
 
Fecha de Ingreso: febrero-2011
Mensajes: 100
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Consulta con $_FILES

Lo pegue mal por eso aparecio ese problema del name=id en el codigo esta bien... el ajax post en resumen lo k hace es recibir todos los argumentos del formulario..!! como se dice "enviale todos los campos al controlador..!! lo cual los recibo bien.. acá han ocupado el ajaxpost y les resulta pero con codigo lineal, yo estoy trabajando con clases y me da problemas..!!
  #5 (permalink)  
Antiguo 14/02/2011, 09:17
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Consulta con $_FILES

Pues es raro por que acabo de hacer una prueba con el codigo que pones y funciona bien.

Código HTML:
Ver original
  1. </head>
  2.   <form id='archivosTodos' name='archivosTodos' method='POST' enctype='multipart/form-data' action='index.php'>
  3.     <input type='hidden' name='cuenta' id ='cuenta' value='1'>
  4.     <input type='file' id='archivo1' name='archivo1'>
  5.     <button type='submit'>Enviar</button>
  6.   </form>
  7. </body>
  8. </html>

En index.php solo imprimo el valor.

Código PHP:
Ver original
  1. var_dump($_FILES);

Checa las funciones .js

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #6 (permalink)  
Antiguo 14/02/2011, 09:35
 
Fecha de Ingreso: febrero-2011
Mensajes: 100
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Consulta con $_FILES

En funciones.js hay otra forma de llamar a los input lo cual hago esto:

miSubida = $("#archivo1").val();

ajaxgetpage('controlador.php?mod=11&miSubida='+miS ubida,'ven');

es algo parecido a lo de ajaxpost(); con la diferencia que aca tengo que mandarle de uno en uno los campo... controlador.php es donde van a ir las variables y miSubida el parametro y ven es el div donde mostrara los datos.... cuando llego al controlador.php hago esto


$sube = $_GET[miSubida]; y me muestra el nombre del archivo.. pero no me sirve esa forma por k son input dinamicos y necesito muchos file no solo uno.. !! por eso es k intento ocupar $_FILES en las dos formas y en ninguna me resulta.. y si hago un var_dump arroja el msj array empity ,osea no le llega nada..!! ¬¬
  #7 (permalink)  
Antiguo 14/02/2011, 10:36
Avatar de bet7o  
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 2 meses
Puntos: 20
Respuesta: Consulta con $_FILES

Recuerda que un formulario con inputs files no se mandan igual, en este casi no puedes enviar las variables por get debe ser por post para que se envien los archivos.

Si utilizas jquery es mas recomendable bajar un plugin que te facilite esto.

Lamentablemente yo nunca he tenido la necesidad de mandar archivos por ajax asi que no podria recomendarte algun plugin en especial, pero seguro encuentras varios en la web.

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana
  #8 (permalink)  
Antiguo 14/02/2011, 12:35
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Consulta con $_FILES

cuando crees una variable con un elemento jquery es recomendable poner var
var miSubida = $("#archivo1").val();
porque en algunos navegadores se cuelga.

tu problema va porque el id es unico entonces si tienes el mismo id para varios input no funciona, lo que podrias hacer es usar $('input[name^=nombre_del_campo]') y eso metrelo dentro de un for que cuente la cantidad de elementos con el mismo nombre y eso lo haces con .each

algo asi
Código HTML:
<input type='file' id='archivo1' name='archivo1'>
<!-- Si tienes varios inputs-->
<input type='file' name='archivo1[]'>
<script>
$('input[name^=archivo1]').each(function(key,value){
alert($(value).val());
})
</script> 
espero te sirva, Saludos.

Última edición por Death_Empire; 14/02/2011 a las 14:30

Etiquetas: files
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 12:55.