PHP - problemas para subir imagen a directorio

 
Vista:
sin imagen de perfil
Val: 24
Ha aumentado su posición en 4 puestos en PHP (en relación al último mes)
Gráfica de PHP

problemas para subir imagen a directorio

Publicado por martin (16 intervenciones) el 24/11/2019 16:08:36
hola a todos, quiero hacer lo siguiente pero no me sale, tengo un form:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form action="include/cargar.php" method="post" enctype="multipart/form-data">
  <div class="form-group">
    <div class="col-sm-6">
      <input type="text" class="form-control" name="nombre" placeholder="Nombre" required>
    </div>
  </div>
  <div class="form-group text-center col-8">
    <span>Foto de perfil</span>
    <input type="file" class="form-control-file" name="perfil">
  </div>
  <div class="form-group row">
    <div class="col-sm-10 text-center">
      <button type="submit" class="btn text-white" name="crear">Publicar</button>
    </div>
  </div>
</form>

este form lo que hace es pedir un nombre y una imagen, al dar clik pasa al script de 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
<?php
include('cnx.php');
$nombre = mysqli_real_escape_string($cnx, $_POST['nombre']);
 
$insert = "INSERT INTO `publicaciones` (`nombre`) VALUES ('$nombre')";
$carga = mysqli_query($cnx, $insert);
$sql = "SELECT * FROM publicaciones";
$query = mysqli_query($cnx, $sql);
 
while ($r = mysqli_fetch_array($query)) {
    //ruta donde voy a guardar la imagen
    $carpeta = "../img/".$r['id']."_".$r['nombre']."/";
    //me fijo si no existe carpeta para crearla
    if (!file_exists($carpeta)) {
    mkdir($carpeta, 777);
    //tomo datos de la imagen a subir
    $nombre = $_FILES['perfil']['name'];
    $nombrer = strtolower($nombre);
    //extraigo la extension de la imagen
    $explode = explode('.', $nombrer);
    $extension = array_pop($explode);
    $cd=$_FILES['perfil']['tmp_name'];
    //reemplazo el nombre de la imagen a "perfil" mas la extension
    $destino = str_replace($nombrer, "perfil", $nombrer).".".$extension;
    //subo la imagen a la carpeta creada
    $resultado = copy($destino, $carpeta);
}
 
echo $r['id']." ".$r['nombre']." ".$carpeta,$destino."<br>";
}
 
?>

lo que hago aca es tomar los datos que llegan y cargar el nombre del input en la bd, despues hago un select para tomar ese nombre junto con el id para asi crear la carpeta, lo que quiero hacer y no me esta saliendo hasta ahora (seguramente algo tengo mal y no lo veo) es procesar la imagen y antes de copiarla al directorio recien creado, poder cambiarle el nombre original al de perfil, pero no le encuentro la vuelta de como hacerlo hasta el momento
desde ya muchas gracias
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