Foros del Web » Programando para Internet » PHP »

Me sale array en vez de nombre de url

Estas en el tema de Me sale array en vez de nombre de url en el foro de PHP en Foros del Web. Buenas tardes, estoy practicando sobre el tema de files, y bueno hice mi codigo todo funciona Ok, pero me guarda con el nombre "Array" alguien ...
  #1 (permalink)  
Antiguo 25/07/2011, 16:28
 
Fecha de Ingreso: julio-2011
Mensajes: 161
Antigüedad: 12 años, 9 meses
Puntos: 3
Pregunta Me sale array en vez de nombre de url

Buenas tardes, estoy practicando sobre el tema de files, y bueno hice mi codigo todo funciona Ok, pero me guarda con el nombre "Array" alguien sabe porque aparece eso?

Gracias.
  #2 (permalink)  
Antiguo 25/07/2011, 16:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Me sale array en vez de nombre de url

Saludos y bienvenido.

Sin ver lo que hayas hecho, no te podemos decir.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 25/07/2011, 16:30
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Me sale array en vez de nombre de url

Cita:
Iniciado por lems1o Ver Mensaje
Buenas tardes, estoy practicando sobre el tema de files, y bueno hice mi codigo todo funciona Ok, pero me guarda con el nombre "Array" alguien sabe porque aparece eso?

Gracias.
Hola que tal lems1o Bienvenido al foro.

Puedes poner un poco de código para ayudarte mejor.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 25/07/2011, 16:38
 
Fecha de Ingreso: julio-2011
Mensajes: 161
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: Me sale array en vez de nombre de url

Saludos.
Bueno este es mi codigo :
<html>
<head>
<title>multiple file upload php</title>
<script type="text/javascript">
function add_file_field(){
var container=document.getElementById('file_container' );
var file_field=document.createElement('input');
file_field.name='archivo[]';
file_field.type='file';
container.appendChild(file_field);
var br_field=document.createElement('br');
container.appendChild(br_field);


}
</script>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<h1>Advanced Multiple File Upload Script Example</h1><div id="file_container">
<input name="archivo[]" type="file" />
<br />
</div>
<a href="javascript:void(0);" onClick="add_file_field();">Add another</a><br />
<input name="enviar" type="submit" value="Submit" />
<input name="action" type="hidden" value="upload"/>
</form>
</body>
</html>



Y luego lo subo a una carpeta del servidor y inserto la url asi :

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
//$prefijo = substr(md5(uniqid(rand())),0,6);
$prefijo=0;





if ($archivo != "") {
for ($i = 0; $i < count($_FILES['archivo']['name']); $i++) {
// guardamos el archivo a la carpeta files
//$destino = "files/".$prefijo."_".$archivo;
$destino = "E:Software colaborativo/opengoo_1.3.1/opengoo/form/form/prb/nt/prueba/".$archivo;



if (copy($_FILES['archivo']['tmp_name'][$i],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";

$qry = "INSERT INTO files (id,car) VALUES(10,'$destino')";
//NOS CONECAMOS A LA BASE DE DATOS

//REMPLAZEN SUS VALOS POR LOS MIOS
mysql_connect("localhost","root","mysql") or die("No se pudo conectar a la base de datos");

//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("phpfacil");

//EJECUTAMOS LA CONSULTA
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());


} else {
$status = "Error al subir el archivo";
}
}
} else {
$status = "Error al subir archivo";
}
}
?>


Pero el problema es que en la bd me aparece esto :

E:Software colaborativo/opengoo_1.3.1/opengoo/form/form/prb/nt/prueba/Array

y por ende en la carpeta tmb me aparece array y remplaza todos los que inserto porque siempre mete array :x
  #5 (permalink)  
Antiguo 25/07/2011, 16:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me sale array en vez de nombre de url

Es normal, porque estás leyendo antes del bucle el nombre del archivo como si se tratara de un solo upload cuando lo deberías hacer dentro para obtener el nombre dinámicamente.

El motivo es que no se manejan del mismo modo los uploads simples, que múltiples.

Te invito a leer el manual para que te des una idea:
http://php.net/manual/en/features.file-upload.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 25/07/2011, 16:47
 
Fecha de Ingreso: julio-2011
Mensajes: 161
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: Me sale array en vez de nombre de url

Agradezco tu respuesta, y gracias por el link, estoy desde las 8 aqui me he mareado un poco puesto que aveces no me insertaba en la bd o en la carpeta, y la ruta.

Slds.
  #7 (permalink)  
Antiguo 25/07/2011, 16:51
 
Fecha de Ingreso: julio-2011
Mensajes: 161
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: Me sale array en vez de nombre de url

Mejore el uploader, mira

<?php




ini_set('post_max_size','100M');
ini_set('upload_max_filesize','100M');
ini_set('max_execution_time','1000');
ini_set('max_input_time','1000');


if (isset($_POST['Submit'])) {
$number_of_file_fields = 0;
$number_of_uploaded_files = 0;
$number_of_moved_files = 0;
$uploaded_files = array();
$images = $_FILES["images"]['name'];
$upload_directory = "E:Software colaborativo/opengoo_1.3.1/opengoo/form/form/prb/nt/prueba/".$images; //set upload directory

//$upload_directory = 'E:\Software colaborativo\opengoo_1.3.1\opengoo\form\form\prb\m ultiple\uploaded\';






for ($i = 0; $i < count($_FILES['images']['name']); $i++) {
$number_of_file_fields++;
if ($_FILES['images']['name'][$i] != '') { //check if file field empty or not
$number_of_uploaded_files++;
$uploaded_files[] = $_FILES['images']['name'][$i];
if (move_uploaded_file($_FILES['images']['tmp_name'][$i], $upload_directory . $_FILES['images']['name'][$i])) {
$number_of_moved_files++;


$qry = "INSERT INTO files (id,car) VALUES('1','$upload_directory')";
//NOS CONECAMOS A LA BASE DE DATOS
//REMPLAZEN SUS VALOS POR LOS MIOS
mysql_connect("localhost","root","mysql") or die("No se pudo conectar a la base de datos");

//SELECCIONAMOS LA BASE DE DATOS CON LA CUAL VAMOS A TRABAJAR CAMBIEN EL VALOR POR LA SUYA
mysql_select_db("phpfacil");

//EJECUTAMOS LA CONSULTA
mysql_query($qry) or die("Query: $qry <br />Error: ".mysql_error());

}

}

}
echo "Number of File fields created $number_of_file_fields.<br/> ";
echo "Number of files submitted $number_of_uploaded_files . <br/>";
echo "Number of successfully moved files $number_of_moved_files . <br/>";
echo "File Names are <br/>" . implode(',', $uploaded_files);
echo "<br>";
echo $upload_directory;


}
/**
* This is example purpose only.
*/

?>




Este si me sube a la carpeta pero en la bd me guarda esto :

E:Software colaborativo/opengoo_1.3.1/opengoo/form/form/prb/nt/prueba/Array

y deberia guardarme el nombre correcto, no entiendo porque =/ y en la carpeta lo guarda pero con el prefijo adelante asi :
Arraydescargar_archivo.xls
  #8 (permalink)  
Antiguo 25/07/2011, 17:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Me sale array en vez de nombre de url

Es por lo mismo, sigues usando la variable que defines mal fuera del bucle.

Cuando debes definirla del mismo modo dentro del bucle, mientras sigas haciendo lo mismo vas seguir obteniendo los mismos errores.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: nombre, url, vez
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 19:13.