PHP - ayuda a solucionar error al subir imagen con php y ajax

   
Vista:

ayuda a solucionar error al subir imagen con php y ajax

Publicado por efren (22 intervenciones) el 05/09/2014 06:24:21
Hola amigos escribo por aqui en busca de ayuda para solucionar los siguientes avisos que me esta mostrando php

strict standards only variables should be assigned by reference in /midirectorio/subirfoto.php in line 10

strict standards only variables should be assigned by reference in /midirectorio/subirfoto.php in line 18

Warning: imagejpeg(../usuarios/): failed to open stream: Is a directory in /midirectorio/subirfoto.php in line 81


esos son los 3 errores que me esta mandando y no se como solucionarlos ya que funciona sube la imagen y todo pero me muestra eso, este es el archivo


si alguien me puede ayudar

subirfoto.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
 
 
 
$usuario=$_COOKIE["usuario"];
 require('config.php');
if(isset($_FILES["foto"])){
			// Primero, hay que validar que se trata de un JPG/GIF/PNG
        $allowedExts = array("jpg", "jpeg", "gif", "png", "JPG", "GIF", "PNG");
        $extension = end(explode(".", $_FILES["foto"]["name"]));
        if ((($_FILES["foto"]["type"] == "image/gif")
                || ($_FILES["foto"]["type"] == "image/jpeg")
                || ($_FILES["foto"]["type"] == "image/png")
                || ($_FILES["foto"]["type"] == "image/pjpeg"))
                && in_array($extension, $allowedExts)) {
            // el archivo es un JPG/GIF/PNG, entonces...
 
            $extension = end(explode('.', $_FILES['foto']['name']));
            $foto = substr(md5(uniqid(rand())),0,10)."-".$lole.".".$extension;
            $directorio = '../usuarios'; // directorio de tu elección
			$ruta='usuarios/'.'res_'.$foto;
 
            // almacenar imagen en el servidor
            move_uploaded_file($_FILES['foto']['tmp_name'], $directorio.'/'.$foto);
 
			echo'<img src="../loading2.gif">';
 
			$queryb = "UPDATE tb_usuarios SET foto='$ruta' WHERE usuario='$usuario'";
             mysql_query($queryb) or die(mysql_error());
 
 
 
            $resFoto = 'res_'.$foto;
            resizeImagen($directorio.'/', $foto, 65, 65,$minFoto,$extension);
            resizeImagen($directorio.'/', $foto, 120, 120,$resFoto,$extension);
            unlink($directorio.'/'.$foto);
 
 
 
        } else { // El archivo no es JPG/GIF/PNG
            $malformato = $_FILES["foto"]["type"];
            $error100= '<div  class="alert alert-danger"><a class="close" data-dismiss="alert">×</a>El archivo no es una imagen.</div>';
          }
 
}
####
## Función para redimencionar las imágenes
## utilizando las liberías de GD de PHP
####
 
function resizeImagen($ruta, $nombre, $alto, $ancho,$nombreN,$extension){
    $rutaImagenOriginal = $ruta.$nombre;
    if($extension == 'GIF' || $extension == 'gif'){
    $img_original = imagecreatefromgif($rutaImagenOriginal);
    }
    if($extension == 'jpg' || $extension == 'JPG'){
    $img_original = imagecreatefromjpeg($rutaImagenOriginal);
    }
    if($extension == 'png' || $extension == 'PNG'){
    $img_original = imagecreatefrompng($rutaImagenOriginal);
    }
    $max_ancho = $ancho;
    $max_alto = $alto;
    list($ancho,$alto)=getimagesize($rutaImagenOriginal);
    $x_ratio = $max_ancho / $ancho;
    $y_ratio = $max_alto / $alto;
    if( ($ancho <= $max_ancho) && ($alto <= $max_alto) ){//Si ancho 
      $ancho_final = $ancho;
		$alto_final = $alto;
	} elseif (($x_ratio * $alto) < $max_alto){
		$alto_final = ceil($x_ratio * $alto);
		$ancho_final = $max_ancho;
	} else{
		$ancho_final = ceil($y_ratio * $ancho);
		$alto_final = $max_alto;
	}
    $tmp=imagecreatetruecolor($ancho_final,$alto_final);
    imagecopyresampled($tmp,$img_original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
    imagedestroy($img_original);
    $calidad=70;
    imagejpeg($tmp,$ruta.$nombreN,$calidad);
 
}
 
?>
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 xve

ayuda a solucionar error al subir imagen con php y ajax

Publicado por xve (5518 intervenciones) el 05/09/2014 08:27:54
Hola Efren, no se exactamente cuales son las lineas a las que hace referencia los errores, pero te esta diciendo que solamente puede asignar por referencia una variable.

Nos puedes indicar exactamente a que linea hace referencia los errores?
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

ayuda a solucionar error al subir imagen con php y ajax

Publicado por efren (22 intervenciones) el 05/09/2014 19:47:08
Hola amigo gracias por responder copie el codigo tal cual lo tengo si lo copias mirrias la linea jejej.

igual te dejo cuales son las lineas que me indica

error en la linea 10 -----------> $extension = end(explode(".", $_FILES["foto"]["name"]));

error en la linea 18 --------> $extension = end(explode(".", $_FILES["foto"]["name"]));

error en la linea 81 ----------> imagejpeg($tmp,$ruta.$nombreN,$calidad);


esas son las 3 lineas que mandan el error
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

ayuda a solucionar error al subir imagen con php y ajax

Publicado por xve (5518 intervenciones) el 06/09/2014 17:52:20
Hola Efren, perdona, no sabia que era el código entero... lo siento...

La instrucción es correcta, pero no entiendo porque te da ese error...
Si haces:
1
echo $_FILES["foto"]["name"];
te devuelve el nombre correcto del archivo? es lo único que se me ocurre...
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

ayuda a solucionar error al subir imagen con php y ajax

Publicado por Ignacio (15 intervenciones) el 09/09/2014 03:22:50
Prueba a reducir el código, por ejemplo create dos archivos:

- formulario.html. Página del formulario.

1
2
3
4
<form action = "procesar_foto.php" method = "post" enctype="multipart/form-data">
	<input type = "file" name = "foto">
	<input type = "submit" value = "enviar">
</form>

- procesar_foto.php. Página que procesa la imagen subida por el formulario.

1
2
3
4
<?php
	$extension = end (explode (".", $_FILES["foto"]["name"]));
	echo $extension;
?>


No me da ningún error y obtengo la extensión de la imagen.
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