PHP - iniciar una variable con una imagen

 
Vista:
sin imagen de perfil

iniciar una variable con una imagen

Publicado por Santon (77 intervenciones) el 13/03/2015 20:31:05
Buen dia Amigos, tengo un problema en un campo de tipo file selecciono una imagen para almacenar en una base de datos cuando selecciono la imagen no tengo ningun problema pero cuando el campo lo dejo vacio yo quiero guardar en la base una imagen especifica pero al asignar un valor a la variable me da error.

este es el codigo

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
<Script language="JavaScript">
 
function guarda_personales(){
 
	  confirm('¿Desea guardar los datos?')
		document.form1.bandera.value="guarda"
		document.form1.submit();
 
    }
 
  </Script>
 
<form action="" method="post" name="form1" id="form1"  enctype="multipart/form-data">
 
  <p>
    <input name="archivo" type="file"   height="90" width="100" id="archivo"/>
    <input type="hidden" name="bandera" />
  </p>
  <p>
    <label>
    <input name="bt_guardar1" type="button" id="bt_guardar1" onclick="guarda_personales()" value="Guardar"/>
    </label>
    <input type="hidden" name="archivo2" value="fotos/foto1.jpeg" />
  </p>
</form>
 
<?php
 include('conexion.php');
 if($bandera=="guarda"){
 
if($archivo==""){ //cuando el archivo este vacio quiero que en la tabla se me almacene la imagen foto 1 pero da error
echo "archivo vacio no selecciono imagen";
//ponemos una imagen por defecto
$archivo="fotos/foto1.jpeg";
 $imagen=$_FILES['archivo']['tmp_name'];//contenido del archivo
 
  $nomimagen=$_FILES['archivo']['name'];//nombre
  $tipoimagen=$_FILES['archivo']['type'];//tipo
  $tamimagen=$_FILES['archivo']['size'];//tamaño
 
 
  $fp=fopen($imagen,'rb'); //abrimos el archivo binario "imagen" en modo lectura
  $contenido=fread($fp,$tamimagen);//lee el archivo hasta el tamaño de la imagen
  $contenido=addslashes($contenido);//Añadimos caracteres de escape
  fclose($fp); //cerramos el archivo
}
else {
echo "se selecciono imagen"; //cuando selecciono un valor todo esta bien
 
 $imagen=$_FILES['archivo']['tmp_name'];//contenido del archivo
 
  $nomimagen=$_FILES['archivo']['name'];//nombre
  $tipoimagen=$_FILES['archivo']['type'];//tipo
  $tamimagen=$_FILES['archivo']['size'];//tamaño
 
 
  $fp=fopen($imagen,'rb'); //abrimos el archivo binario "imagen" en modo lectura
  $contenido=fread($fp,$tamimagen);//lee el archivo hasta el tamaño de la imagen
  $contenido=addslashes($contenido);//Añadimos caracteres de escape
  fclose($fp); //cerramos el archivo
}
}
?>

el error es el siguiente:

Warning: fread(): supplied argument is not a valid stream resource in C:\AppServ\www\SIADACE\academica\vector.php on line 42

Warning: fclose(): supplied argument is not a valid stream resource in C:\AppServ\www\SIADACE\academica\vector.php on line 44
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
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

iniciar una variable con una imagen

Publicado por xve (6935 intervenciones) el 13/03/2015 22:32:45
Hola Santon, en este condicional:
1
if($archivo==""){
no se ver que valor tiene $archivo... de donde sale esta variable?

Si se cumpliera esta condición, defines la variable:
1
$archivo="fotos/foto1.jpeg";
pero no la utilizas en el fopen¿?
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

iniciar una variable con una imagen

Publicado por Santon (77 intervenciones) el 13/03/2015 22:37:28
el valor de la variable $archivo depende de el campo de abajo, cuando yo selecciono una imagen por medio de un examinar coloco una imagen en este campo

<input name="archivo" type="file" height="90" width="100" id="archivo"/>

pero ahi todo esta bien en la segunda condicion del IF el problema es cuando quiero dejar una imagen por defecto, porq lo que quiero es que cuando no seleccionen imagenes pondre una que diga no existe 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
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

iniciar una variable con una imagen

Publicado por xve (6935 intervenciones) el 14/03/2015 09:26:45
En el condicional, $archivo no es el valor del formulario... tendrías que utilizar $_FILES["archivo"]

La segunda condicion del IF¿? querras decir la primera, no? que es donde defines la variable:
1
$archivo="fotos/foto1.jpeg"

La manera que yo lo haria seria:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if($_FILES['archivo']['tmp_name']){
    // ha enviado un archivo
 
    $imagen=$_FILES['archivo']['tmp_name'];//contenido del archivo
    $nomimagen=$_FILES['archivo']['name'];//nombre
    $tipoimagen=$_FILES['archivo']['type'];//tipo
    $tamimagen=$_FILES['archivo']['size'];//tamaño
 
    $fp=fopen($imagen,'rb'); //abrimos el archivo binario "imagen" en modo lectura
    $contenido=fread($fp,$tamimagen);//lee el archivo hasta el tamaño de la imagen
    $contenido=addslashes($contenido);//Añadimos caracteres de escape
    fclose($fp); //cerramos el archivo
}else{
    // NO ha enviado ningun archivo
    $imagen=$_SERVER['DOCUMENT_ROOT']."/fotos/foto1.jpeg";
 
    $tamimagen=filesize($imagen);
 
    $fp=fopen($imagen,'rb'); //abrimos el archivo binario "imagen" en modo lectura
    $contenido=fread($fp,$tamimagen);//lee el archivo hasta el tamaño de la imagen
    $contenido=addslashes($contenido);//Añadimos caracteres de escape
    fclose($fp); //cerramos el archivo
}

Coméntanos si te sirve, ok?
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

iniciar una variable con una imagen

Publicado por Santon (77 intervenciones) el 14/03/2015 20:59:23
Si fue efectivo ya esta solucionado con el unico detalle que cambien en la siguiente linea:
$imagen=$_SERVER['DOCUMENT_ROOT']."/fotos/foto1.jpeg";

POR:

$imagen="fotos/foto1.jpeg";

asi me trabajo, Gracias por la solucion.
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

iniciar una variable con una imagen

Publicado por xve (6935 intervenciones) el 15/03/2015 11:53:00
Gracias por comentarlo Santon... no lo había probado, pero creía que querría la dirección absoluta.
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