PHP - Carga de imágenes al servidor

 
Vista:
sin imagen de perfil

Carga de imágenes al servidor

Publicado por Iraitz (3 intervenciones) el 19/05/2017 10:06:21
Hola gente!

Primero de todo gracias por el trabajo que hacéis aquí.

Tengo un problemilla, estoy haciendo una aplicación web sencilla, en la que el usuario carga una foto desde la web y yo, con una imagen que tengo precargada en el servidor (un faldón), combino ambas imágenes con GD y la muestro en el navegador para descargarla.

En local funciona genial, pero al subirlo a un server, con lo que tarda la imagen en subirse, como el acoplamiento lo hago "al vuelo" según se sube, parece ser que cuando ejecuto el código de acoplar las imágenes, la que ha subido el usuario todavía no está en el server, con lo cual me muestra una imagen en blanco. Adjunto un gyazo del resultado obtenido ahora.

https://gyazo.com/7d0b3ce60d3b624e7b074b1c2dbe0511

Mi pregunta es, hay alguna manera de saber cuando se ha subido la imagen al server y ya se pude trabajar con ella? y de mientras se está subiendo mostrar algún spinner.

He probado con Ajax mostrando una barra de progreso, pero la barra de progreso termina y la imagen todavía no está subida.

Os dejo el PHP que utilizo para la carga de la imagen. (Viene a través de un form por POST)
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
<?php
 
$destination_path = getcwd().DIRECTORY_SEPARATOR;
$target_path = $destination_path . basename( $_FILES["image"]["name"]);
 
$faldondir = $destination_path . 'Faldon_horizontal.png';
if (move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) {
 
    $im = @imagecreatefromjpeg($target_path);
    $anchoimg = imagesx($im);
 
    $faldon = @imagecreatefrompng($faldondir);
    $anchofaldon = imagesx($faldon);
 
    if($anchoimg != $anchofaldon)
    {
      $faldon = imagescale ($faldon, $anchoimg);
    }
 
    $alto = imagesy($im) - imagesy($faldon);
 
    imagecopyresampled(
      $im,
      $faldon,
      0, $alto, 0, 0,
      imagesx($faldon),
      imagesy($faldon),
      imagesx($faldon),
      imagesy($faldon)
    );
    header('Content-Type: image/jpeg');
    imagejpeg($im, null, 100);
 
 
    } else {
    echo "¡Posible ataque de subida de ficheros!\n";
}
 
?>
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

Carga de imágenes al servidor

Publicado por Iraitz (3 intervenciones) el 19/05/2017 12:12:03
Estoy viendo que el problema no viene por el tiempo de carga de la imagen al server, puede ser un tema de permisos?

La imagen llega al server con 644, no se si con esto sera suficiente para utilizar la librería GD y abrir la imagen y modificarla
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Carga de imágenes al servidor

Publicado por xve (6935 intervenciones) el 19/05/2017 14:50:59
Hola Iraitz, si los atributos del archivo son 644, quiere decir que únicamente el propietario del archivo puede modificar-lo o eliminarlo... no se con que usuario se ejecuta el PHP.

Para hacer la prueba, dale permisos 666 al archivo o prueba.
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
sin imagen de perfil

Carga de imágenes al servidor

Publicado por Iraitz (3 intervenciones) el 21/05/2017 15:39:20
Gracias por la contestación xve, la cosa es que tampoco consigo cambiar los permisos al subirlo con Chmod
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