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.
| |||
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. |
| ||||
Respuesta: Me sale array en vez de nombre de url Cita: 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 |
| |||
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 |
| ||||
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. |
| |||
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. |
| |||
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 |
| ||||
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: |