elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [SOLUCIONADO][PHP] $_FILE[nombre][propiedad] devuelve un array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO][PHP] $_FILE[nombre][propiedad] devuelve un array  (Leído 8,153 veces)
LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
[SOLUCIONADO][PHP] $_FILE[nombre][propiedad] devuelve un array
« en: 18 Septiembre 2014, 03:14 am »

Buenos días intento guardar una imagen en un Base de datos mySQL desde un formulario
El problema es el siguiente......

Problema2:
cada vez que se ejecuta el formulario se sube un nuevo archivo y la variable $_FILE[nombre][propiedad] va devolviendo un array....
por ejemplo para hacer referencia a la primera foto que se subio desde el formulario seria:
Código
  1. $_FILE[nombre][propiedad] [0]
tengo 2 dudas....
1. Se puede reiniciar esta variable?
2. En esta variable se almacenaran archivos solo de este formulario o de otros que esten
en mi pagina(si usara el mismo nombre)($_FILE[nombre])?



Problema1(solucionado):

al ejecutar el "subir_imagen.php" el archivo(imagen seleccionada en el input) no esta cargado por lo tanto no se puede mandar nada a la base... ver linea :15 Código subir_imagen.php eso da falso

Solucion:
El archivo hera demasiado grande.....
AYUDA PORFA.....

La Tabla:
Código
  1. CREATE TABLE IF NOT EXISTS `IMG_PERFIL` (
  2.  `ID` SMALLINT(6) NOT NULL AUTO_INCREMENT,
  3.  `ANCHURA` SMALLINT(6) NOT NULL,
  4.  `ALTURA` SMALLINT(6) NOT NULL,
  5.  `TIPO` CHAR(15) NOT NULL,
  6.  `IMAGEN` mediumblob NOT NULL,
  7.  PRIMARY KEY  (`id`)
  8. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

El formulario:
Código
  1. <form method="post" action="subir_imagen.php" onsubmit="return validacion(this)">
  2.  
  3.       <label>Elige una fotografia tipo credencial(2MB max):</label>
  4.       <div id="frm-campo-image"></div>
  5.       <input type="hidden" name="MAX_FILE_SIZE" value="2400" />
  6.       <input type="file" id="foto" name="foto_perfil_registro[]" required="true"/>
  7.       <output id="list"></output>          
  8.        <input class="botton1" type="submit" value="Registrarse"/>
  9.  
  10. </form>

El archivo subir_imagen.php

Código
  1.  
  2.        <?php
  3.           $filename = "foto_perfil_registro";
  4.  
  5.  $link = new mysqli('localhost', 'base', '1234', 'tabla');
  6. //echo "<BR>".$_FILES[ $filename]["name"][0]; //nombre del archivo
  7. //echo "<BR>".$_FILES[ $filename]["type"][0]; //tipo
  8. //echo "<BR>".$_FILES[ $filename]["tmp_name"][0]; //nombre del archivo de la imagen temporal
  9. //echo "<BR>".$_FILES[ $filename]["size"][0]; //tamaño
  10. # Comprovamos que se haya subido un fichero
  11.  
  12.    if (is_uploaded_file($_FILES[$filename]["tmp_name"][0])) {
  13.        # Cogemos el formato de la imagen
  14.  
  15.           $filetype =$_FILES[$filename]["type"][0];
  16.  
  17.        if ( $filetype== "image/jpeg" || $filetype== "image/pjpeg" || $filetype == "image/gif" || $filetype == "image/bmp" || $filetype == "image/png") {
  18.            # Cogemos la anchura y altura de la imagen
  19.            $info = getimagesize($_FILES[$filename]["tmp_name"]);
  20.            echo "<BR>".$info[0]; //anchura
  21.            echo "<BR>".$info[1]; //altura
  22.            echo "<BR>".$info[2]; //1-GIF, 2-JPG, 3-PNG
  23.            echo "<BR>".$info[3]; //cadena de texto para el tag <img
  24.            #Obtenemos el contenido del archivo
  25.            $contetF = file_get_contents($_FILES[$filename]["tmp_name"]);
  26.            # Escapa caracteres especiales
  27.            $imagenEscapes = mysql_real_escape_string($contetF);
  28.            # Agregamos la imagen a la base de datos
  29.            $result = $link->query("INSERT INTO `IMG_PERFIL` (ANCHURA,ALTURA,TIPO,IMAGEN) VALUES (" . $info[0] . "," . $info[1] . ",'" . $_FILES[$filename]["type"] . "','" . $imagenEscapes . "')", $link);
  30.            # Cogemos el identificador con que se ha guardado
  31.             mysqli_close($link);
  32.  
  33.  
  34.            # Mostramos ela imagen agregada
  35.            //echo "Imagen agregada con el id ".$id."<BR>";
  36.            //echo "<img src='imagen_mostrar.php?id=".$id."' width='".$info[0]."' height='".$info[1]."'>";
  37.        }
  38.    }
  39.  
  40.        ?>

Esto es el script para validar y mostrar la imagen .... Esta de mas pero se los paso por si les sirve...

Código
  1. function handleFileSelect(evt) {
  2.            var files = evt.target.files; // FileList object
  3.            // Loop through the FileList and render image files as thumbnails.
  4.            for (var i = 0, f; f = files[i]; i++) {
  5.                //alert('archivo: ' + i);
  6.                // Only process image files.
  7.                if (!f.type.match('image.*')) {
  8.                    continue;
  9.                } else {
  10.                    document.getElementById('list').innerHTML = [''].join('');
  11.                }
  12.  
  13.                var reader = new FileReader();
  14.  
  15.                // Closure to capture the file information.
  16.                reader.onload = (function(theFile) {
  17.                    return function(e) {
  18.                        // Render thumbnail.
  19.  
  20.                        document.getElementById('list').innerHTML = ['<img id="form-foto" src="', e.target.result,
  21.                            '" title="', escape(theFile.name), '"/>'].join('');
  22.                    };
  23.                })(f);
  24.  
  25.                // Read in the image file as a data URL.
  26.                reader.readAsDataURL(f);
  27.            }
  28.        }


« Última modificación: 18 Septiembre 2014, 16:02 pm por Effort » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [PROBLEMA][PHP] $_FILE[nombre] no existe
« Respuesta #1 en: 18 Septiembre 2014, 03:19 am »

 y el código que la almacena? en el codigo que publicaste no veo la linea que colocas en el titulo


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: [PROBLEMA][PHP] $_FILE[nombre] no existe
« Respuesta #2 en: 18 Septiembre 2014, 03:25 am »

y el código que la almacena? en el codigo que publicaste no veo la linea que colocas en el titulo

Ammm cuando se da sumit... no es igual que con $_POST... solo accedes a el (pense que así era)?
o hay que cargarlo?
o es necesario subirlo por ftp y luego almacenarlo?
Esto da falso:
Código
  1. is_uploaded_file($_FILES[$filename]["tmp_name"])
Perdón por mi ignorancia?
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #3 en: 18 Septiembre 2014, 03:39 am »

intenta colocarle al form el enctype

Código
  1. <form method="post" action="subir_imagen.php" onsubmit="return validacion(this)" enctype="multipart/form-data">
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #4 en: 18 Septiembre 2014, 03:44 am »

OMG siii es cierto eso me faltaba... ya lo había leído pero no se lo puse
.... Deja se lo pongo y modifico para que le sirva a alguien mas..... 

Sos grande amigo... Gracias;D ;D ;D ;D ;D ;D ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
En línea

LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #5 en: 18 Septiembre 2014, 03:49 am »

Compa me sale este error: Warning: is_uploaded_file() expects parameter 1 to be string, array given in /home/subir_imagen.php on line 15
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #6 en: 18 Septiembre 2014, 03:58 am »

lo que le llegó no fue un string... revisa el $_FILES[$filename]["tmp_name"] a ver que contiene, porque dice que recibió un array (usa var_dump para ver el contenido)
« Última modificación: 18 Septiembre 2014, 04:01 am por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #7 en: 18 Septiembre 2014, 04:12 am »

Aqui te pongo lo que imprime cada:


Código
  1. echo $_FILES[ $filename]["name"]; //imprime  afas.jpg
  2. echo $_FILES[ $filename]["type"]; //imprime (nada)
  3. echo $_FILES[$filename]["tmp_name"]; //imprime (nada)
  4. echo $_FILES[ $filename]["size"]; //imprime (nada)
  5. echo $_FILES[ $filename]["error"]; //imprime 2
  6.  
  7.  
  8. Esto es lo que devuelve el var_dump($_FILES[$filename]["tmp_name"]):
  9. <br>array(1) {
  10.  [0]=&gt;
  11.  string(0) ""
  12.  
  13. }
« Última modificación: 18 Septiembre 2014, 04:20 am por Effort » En línea

LaThortilla (Effort)

Desconectado Desconectado

Mensajes: 234


¿En que vida harás lo que en esta no?


Ver Perfil WWW
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #8 en: 18 Septiembre 2014, 04:34 am »

Aqui te pongo lo que imprime cada:


Código
  1. echo $_FILES[ $filename]["name"]; //imprime  afas.jpg
  2. echo $_FILES[ $filename]["type"]; //imprime (nada)
  3. echo $_FILES[$filename]["tmp_name"]; //imprime (nada)
  4. echo $_FILES[ $filename]["size"]; //imprime (nada)
  5. echo $_FILES[ $filename]["error"]; //imprime 2
  6.  
  7.  
  8. Esto es lo que devuelve el var_dump($_FILES[$filename]["tmp_name"]):
  9. <br>array(1) {
  10.  [0]=&gt;
  11.  string(0) ""
  12.  
  13. }


creo que esto es el problema
UPLOAD_ERR_FORM_SIZE
Valor: 2; El archivo subido excede la directiva MAX_FILE_SIZE que fue especificada en el formulario HTML.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: [PROBLEMA][PHP] $_FILE[nombre] no esta cargado
« Respuesta #9 en: 18 Septiembre 2014, 05:00 am »

Vas a necesitar cambiar las directivas en tu php.ini:

post_max_size
upload_max_filesize

post_max_size pon 2mb mas que upload_max_filesize.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines