PHP - No guarda la foto

 
Vista:
Imágen de perfil de Jhon Jairo
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

No guarda la foto

Publicado por Jhon Jairo (7 intervenciones) el 26/05/2018 14:08:58
Hola, me baje un tutorial de youtube y (como es muy común) no funciona, he estado tratando de modificarlo pero he trabajado poco con php. El programa guarda una foto y muestra un listado de ellas.
Index.php

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
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
<body style='background-image:url(C:/xampp/htdocs/ims en bd/Ruta_a_bdMysql/subir_foto/fondo/wallpaper.jpg);background-attachment:fixed;background-repeat:no-repeat;background-position:50% 50%;'>
 
    <center><strong><h1>INSERTAR RUTA DE FOTOS A LA BD</h1></strong></center>
    <p>
        <form action="valida_foto.php" method="POST" enctype="multipart/form-data">
            <center><table border="1">
            <tr bgcolor="skyblue">
                <td><strong>Nombre Usuario:</strong></td><td> <input type="text" name="txtnom" value=""></td>
            </tr>
            <tr bgcolor="skyblue">
            <td bgcolor="skyblue"><strong>Foto:</strong></td>  <td><input type="file" name="foto" id="foto"></td>
            </tr>
            <tr>
            <td colspan="2" align="center" bgcolor="skyblue"><input type="submit" name="enviar" value="Enviar"></td>
            </tr>
            </center></table>
        </form>
 
        <br><br>
        <?php
        /* require_once 'conexion.php'; */
        $db_host="localhost";
        $db_nombre="subir_foto";
        $db_usuario="root";
        $db_contra="";
 
    $conexion=mysqli_connect($db_host,$db_usuario,$db_contra,$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");
    $consulta="select * from foto";
        $sql=  mysqli_query($conexion, $consulta);
        while($res=  mysqli_fetch_array($sql, MYSQLI_BOTH)){
            echo $res["nombre"]."<br>";
            echo '<img src="'.$res["foto"].'" width="100" heigth="100"><br>';
        }
        mysqli_close($conexion);
        ?>
    </body>
</html>

valida_foto.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
//echo "aa";
require_once 'conexion.php';
$nom=$_REQUEST["txtnom"];
$foto=$_FILES["foto"]["name"];
$ruta=$_FILES["foto"]["tmp_name"];
$destino="fotos/".$foto;
copy($ruta,$destino);
 
echo($ruta) . '</p>';
echo($destino) . '</p>';
echo($foto) . '</p>';
echo($nom) . '</p>';
mysql_query("insert into foto (nombre,foto) values('$nom','$destino')");
echo ("Foto subida");
//header("Location: index.php");
?>

conexion.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/* mysql_connect("localhost","root","");
mysql_select_db("subir_foto"); */
 
 $db_host="localhost";
	$db_nombre="subir_foto";
	$db_usuario="root";
	$db_contra="";
 
	$conexion=mysqli_connect($db_host,$db_usuario,$db_contra,$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");
?>

Qué es lo que pasa?, qué debo modificarle?
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
sin imagen de perfil
Val: 157
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

No guarda la foto

Publicado por andres1033 (67 intervenciones) el 26/05/2018 15:38:45
No parece muy buen tutorial, no hace las cosas de la forma adecuada.

Usa copy en lugar de move_upload_file(), la primera es mas adecuada para archivos que existen previamente en el servidor mientras que la segunda es para cargas de archivos desde la terminal del cliente (uploads).

Luego habría que revisar si el registro queda grabado en la base de datos.

No sé si quieres aprender a programar o solo necesitas resolver una necesidad ocasional, pero puedo recomendarte esta página, en ella el ejercicio parece estar mejor hecho aunque no probé el código pero será más fácil de ajustar si fuera necesario.

http://www.formacionwebonline.com/guia-para-subir-y-visualizar-imagenes-con-php-y-mysql/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Jhon Jairo
Val: 14
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

No guarda la foto

Publicado por Jhon Jairo (7 intervenciones) el 28/05/2018 19:55:25
Hola, bajé el código pero tuve que gastarle 1 hora pues reventaba por varias partes. Pude hacer que funcionara, gracias.

Por si a alguien le sirve, este es le código:
verfotos.php
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
<?PHP
include ("config.php");
?>
 
<?
$consulta = "SELECT * FROM fotos ORDER BY id ASC";
			$ejecutar = mysqli_query($conexion, $consulta);
 
			$resultados=mysqli_query($conexion,$consulta);
			while($row=mysqli_fetch_array($resultados, MYSQLI_ASSOC))
 
 
//$resultado = mysqli_query("SELECT * FROM fotos ORDER BY id ASC");
 
//while($row=mysqli_fetch_array($resultado, MYSQLI_ASSOC))
//while($row=mysql_fetch_array($resultado))
{
 
echo "$row[id]";
echo "<br>";
?>
 
<img src="<? echo "$row[Foto1]"; ?>" width="100" height="100" />
 
<?
echo "<br>";
 
}
?>

subir.php
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
<?PHP
session_start();
include "config.php";
?>
 
 
<?PHP
 
$foto1=$_FILES['foto1'];
$nombrefoto1=$_FILES['foto1']['name'];
$ruta1=$_FILES['foto1']['tmp_name'];
 
if(is_uploaded_file($ruta1))
{
  if($_FILES['foto1']['type'] == 'image/png' OR $_FILES['foto1']['type'] == 'image/gif' OR $_FILES['foto1']['type'] == 'image/jpeg')
	{
    $tips = 'jpg';
    $type = array('image/jpeg' => 'jpg');
    //$name = $id.'Foto-1'.'.'.$tips;
    $name = $nombrefoto1.'Foto-1'.'.'.$tips;
    $destino1 =  "imagenes/".$name;
    copy($ruta1,$destino1);
 
    $ruta_imagen = $destino1;
 
    $miniatura_ancho_maximo = 700;
    $miniatura_alto_maximo = 500;
 
    $info_imagen = getimagesize($ruta_imagen);
    $imagen_ancho = $info_imagen[0];
    $imagen_alto = $info_imagen[1];
    $imagen_tipo = $info_imagen['mime'];
 
    switch ( $imagen_tipo )
    {
      case "image/jpg":
      case "image/jpeg":
        $imagen = imagecreatefromjpeg( $ruta_imagen );
        break;
      case "image/png":
        $imagen = imagecreatefrompng( $ruta_imagen );
        break;
      case "image/gif":
        $imagen = imagecreatefromgif( $ruta_imagen );
        break;
    }
 
    $lienzo = imagecreatetruecolor( $miniatura_ancho_maximo, $miniatura_alto_maximo );
 
    imagecopyresampled($lienzo, $imagen, 0, 0, 0, 0, $miniatura_ancho_maximo, $miniatura_alto_maximo, $imagen_ancho, $imagen_alto);
 
 
    imagejpeg($lienzo, $destino1, 80);
  }
}
 
?>
 
<form action="" method="post" enctype="multipart/form-data">
<input name="foto1" type="file" id="foto1"  >
<input name="guardar" type="submit" value="Subir foto" />
</form>
 
<?
if($_POST['guardar'])
{
  $act = "INSERT INTO fotos (foto1) values ('".$destino1."')";
  if(@mysql_query($act)){echo "La foto fue publicada con éxito";
}}
 
?>

config.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?PHP
 
$db_host = "localhost"; 	//TU HOST//
$db_usuario = "root";	 	//TU USUARIO DEL HOST//
$db_contra = "";	//TU CONTRASEÑA//
$db_nombre = "fotos";		//TU BASE DE DATOS//
 
$conexion=mysqli_connect($db_host,$db_usuario,$db_contra,$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");
/*
$connect = mysql_connect ($host, $dbuser, $dbpwd, $db);
if(!connect)
	echo ("No se pudo conectar a la base de datos");
else
	$select = mysql_select_db($db);  */
?>
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