PHP - Insertar imagen

 
Vista:

Insertar imagen

Publicado por Joan Camilo Olmos (7 intervenciones) el 13/05/2019 16:12:08
Amigos Necesito Insertar y subir una foto a una bases de datos lo que tengo es esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<em><em><em><em><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Registro</title>
<style>
	h1{
	text-align:center;
	}
	table{
		background-color:#0FF;
		padding:5px;
		border:#666 5px solid;	
	}
</style>
</head>
<body>
<h1> REGISTRO DE EMPLEADOS</h1>
<form action="insertarRegistros.php" method="get" name="form1">
 
<table width="15%" align="center">
 
<tr>
<td> Cedula:</td>
<td><label for="cedula"></label>
<input type="text" name="cedula" id="cedula"></td>
</tr>
 
<tr>
<td> Nombres:</td>
<td><label for="nombres"></label>
<input type="text" name="nombres" id="nombres"></td>
</tr>
 
<tr>
<td> Apellidos:</td>
<td><label for="apellidos"></label>
<input type="text" name="apellidos" id="apellidos"></td>
</tr>
 
<form action="datosImagen.php" method="post" enctype="multipart/form-data">
<tr>
<td>Foto:</td>
<td><label for="foto"></label>
<input type="file" name="foto" id="foto" size="20"></td>
</tr>
</form>
 
<tr>
<td> Email:</td>
<td><label for="email"></label>
<input type="text" name="email" id="email"></td>
</tr>
 
<tr>
<td> Ciudad:</td>
<td><label for="ciudad"></label>
<input type="text" name="ciudad" id="ciudad"></td>
</tr>
 
 
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="imagen" id="enviado" value="Registrar" /></td>
</tr>
</form>
</table>
 
</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------------
insertarRegistros.php
 
 
<?php
 
$cedula=$_GET["cedula"];
$nombres=$_GET["nombres"];
$apellidos=$_GET["apellidos"];
$email=$_GET["email"];
$ciudad=$_GET["ciudad"];
$foto=$_GET["imagen"];
 
 global $conexion;
 
$db_host="localhost";
$db_nombre="madecraftt";
$db_usuario="root";
$db_pass="";
 
$conexion=mysqli_connect($db_host,$db_usuario,$db_pass,$db_nombre);
if(mysqli_connect_errno()){
 
echo "Fallo al conectar con la base de datos";
		exit();
 
	}
 
mysqli_select_db($conexion,$db_nombre) or die ("No se encuentra la base de datos");
mysqli_set_charset($conexion,"utf8");
 
$consulta="insert into empleado(id_empleado, nombre_empleado, apellido_empleado,email_empleado, ciudadResidencia_empleado)
values('$cedula','$nombres','$apellidos','$email','$ciudad')";
$resultado=mysqli_query($conexion, $consulta);
 
 
if($resultado==false){
echo"Error en la consulta";
}else{
echo"Registro guardado";
}
?>
<form action="menu.php" method="post" name="form1">
<tr>
<td colspan="2" align="center"><input type="submit"name="enviado"id="enviado"value="Menu"/></td>
</tr>
</form>
--------------------------------------------------------------------------------------------------------------------------------------------------------
datosImagen.php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
 
// Recibimos los datos de la imagen
 
$nombre_imagen=$_FILES['imagen']['name'];
$tipo_imagen=$_FILES['imagen']['type'];
$tamaño_imagen=$_FILES['imagen']['size'];
 
if($tamaño_imagen<=3000000){
 
	if($tipo_imagen=="image/jpeg" || $tipo_imagen=="image/jpg" || $tipo_imagen=="image/png"){
 
// ruta de la carpeta del servido
$carpeta_destino=$_SERVER['DOCUMENT_ROOT'] . '/Curso_PHP/';
 
// Movemos la imagen del directorio temporal al destino escogido
move_uploaded_file($_FILES['imagen']['tmp_name'],$carpeta_destino.$nombre_imagen);
	}else{
 
	echo"Solo se pueden subir imagenes jpeg/jpg/png";
	}
} else{
 
echo "El tamaño es demasiado grande";
}
 
$db_host="localhost";
$db_nombre="madecraftt";
$db_usuario="root";
$db_pass="";
 
$conexion=mysqli_connect($db_host,$db_usuario,$db_pass,$db_nombre);
if(mysqli_connect_errno()){
 
echo "Fallo al conectar con la base de datos";
		exit();
 
	}
 
mysqli_select_db($conexion,$db_nombre) or die ("No se encuentra la base de datos");
 
mysqli_set_charset($conexion,"utf8");
 
$sql="insert into empleado (foto) values ('$nombre_imagen')";
 
$resultado=mysqli_query($conexion, $sql);
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insertar imagen

Publicado por Kathyu (905 intervenciones) el 13/05/2019 17:14:58
Que error le da?

Puede buscar mis post, por ahí hay una forma fácil de subir imágenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar imagen

Publicado por Joan Camilo Olmos (7 intervenciones) el 13/05/2019 17:21:01
Notice: Undefined index: foto in C:\xampp\htdocs\Curso_PHP\insertarRegistros.php on line 11

Notice: Undefined index: foto in C:\xampp\htdocs\Curso_PHP\insertarRegistros.php on line 12

Notice: Undefined index: foto in C:\xampp\htdocs\Curso_PHP\insertarRegistros.php on line 13



y tengo esto

1
2
<form action="insertarRegistros.php" method="get"  name="form1"
action="insertarRegistros.php" method="post" enctype="multipart/form-data" name="form2">

necesito usar el $_GET y $_POST para poder hacer esto en un solo archivo

1
2
3
4
5
6
$cedula=$_GET["cedula"];
$nombres=$_GET["nombres"];
$apellidos=$_GET["apellidos"];
$email=$_GET["email"];
$ciudad=$_GET["ciudad"];
$foto=$_GET["foto"];


las lineas 11, 12 y 13 son estas

1
2
3
$nombre_imagen=$_FILES['foto']['name'];
$tipo_imagen=$_FILES['foto']['type'];
$tamaño_imagen=$_FILES['foto']['size'];




pero no me deja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insertar imagen

Publicado por joel (1269 intervenciones) el 13/05/2019 20:14:45
Hola Juan Carlos, hasta donde yo se, no puedes definir dos method en un <form>
Si vas a enviar un archivo, tiene que ser por POST, no puede ser por GET!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Insertar imagen

Publicado por joan camilo olmos duran (7 intervenciones) el 13/05/2019 23:32:35
Entonces como podría hacer eso, en conclusión el método post lo necesito para trasladar la imagen una carpeta destino

El método get lo uso para obtener los campos que necesito como cédula, nombres apellidos, foto, ciudad, email.

Como tal la foto no la subo a la base de datos, lo que estoy subiendo a la base de datos es el nombre de la imagen, ya que en el momento de subir la imagen le digo que busque el nombre de la imagen en el campo y que así mismo vaya y la busque en la carpeta donde tengo los archivos( .php) junto con las imágenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Insertar imagen

Publicado por Mauro (1034 intervenciones) el 14/05/2019 15:44:16
Un "truco" que se puede usar para mezclar método GET con método POST es dejar el método como POST pero en el action poner una URL que tenga parámetros.

Algo como:

1
2
3
<form action="subirFoto.php?usuario=1" method="POST">
  <input type="text" name="texto"/>
</form>

Del lado del PHP recibes datos en el array $_POST y $_GET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insertar imagen

Publicado por Kathyu (905 intervenciones) el 13/05/2019 22:06:44
1
Notice: Undefined index: foto

Hace referencia de que foto no existe, seguro que así se llama el input del form?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar imagen

Publicado por Joan Camilo Olmos (7 intervenciones) el 13/05/2019 23:41:48
Si, asi se llama, ya revise y efectivamente el problema esta en que no puedo usar dos métodos dentro <form action>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insertar imagen

Publicado por Kathyu (905 intervenciones) el 14/05/2019 00:17:39
Eso es básico.

1
2
3
4
5
Entonces como podría hacer eso, en conclusión el método post lo necesito para trasladar la imagen una carpeta destino
 
El método get lo uso para obtener los campos que necesito como cédula, nombres apellidos, foto, ciudad, email.
 
Como tal la foto no la subo a la base de datos, lo que estoy subiendo a la base de datos es el nombre de la imagen, ya que en el momento de subir la imagen le digo que busque el nombre de la imagen en el campo y que así mismo vaya y la busque en la carpeta donde tengo los archivos( .php) junto con las imágenes

Puede manipular los POST y los GET de la misma forma... en que esta la dificultad o duda?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar imagen

Publicado por joan Camilo Olmos Duran (7 intervenciones) el 14/05/2019 00:56:02
La dificultad esta en que necesito usar los dos métodos de get y de post pero no me dejan, o como hago para obtener la informacion del formulario con el post?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Insertar imagen

Publicado por italo_pm (193 intervenciones) el 14/05/2019 16:29:08
Hola

cual es el motivo por el que necesitas utilizar el get en un form y el post en otro form? cuando puedes utlizar solo el post y con un solo form enviar los datos de input y los files.

muy alla de la seguridad en utilizar el post siempre para los form, ya que si utilizas el get los datos se veran....

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Insertar imagen

Publicado por joan camilo olmos duran (7 intervenciones) el 14/05/2019 18:36:08
Como podría hacerlo con el post tengo entendido que se hace de la siguiente forma
<form Action= "archivo.php" method="post"..... >

En el otro archivo de php como los puedo leer
Los de fotos tengo entendido que se hace

$nombre_imagen=$_FILES['foto' ] ['name' ] ;


Pero si tengo un formulario de registro de empleados donde ahí yo uso el  get pero en vez del get me dices que use el post en ese caso como seria si tengo lo siguiente con el get

$CEDULA=$_GET["cedula"] ;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar