Foros del Web » Programando para Internet » PHP »

validar si un campo file tiene datos

Estas en el tema de validar si un campo file tiene datos en el foro de PHP en Foros del Web. hola amigos espero k me pudan ayudar por k sigo peleando con un campo file miren lo que pasa es k kiero subir unas imagenes ...
  #1 (permalink)  
Antiguo 11/06/2008, 11:22
Avatar de blackmen10  
Fecha de Ingreso: marzo-2007
Ubicación: chiapas
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 0
Exclamación validar si un campo file tiene datos

hola amigos espero k me pudan ayudar por k sigo peleando con un campo file
miren lo que pasa es k kiero subir unas imagenes a mi base de datos por medio del campo file el problema es k kiero ver k si el el campo file contiene datos abrir el documento y subirlo a la base de datos eso lo ago asi

$archivo = $_FILES["archivito"]["tmp_name"];
$tamanio = $_FILES["archivito"]["size"];
$tipo = $_FILES["archivito"]["type"];
$nombre = $_FILES["archivito"]["name"];


$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);

hasta a hy no hay ni un problema. el problema es k me manda un error cuando no tiene la imagen a subir

Warning: fread(): supplied argument is not a valid stream resource in C:\AppServ\www\UNIDAD\Fotos\unidad001.php on line 121

Warning: fclose(): supplied argument is not a valid stream resource in C:\AppServ\www\UNIDAD\Fotos\unidad001.php on line 123

o sea cuando no contiene datos en el campo file

la solucion k yo veia y estaba haciendo es de recibir las variables del formulario
$variable = $_POST['archivito'];
y validar si el dato es diferente a vacio esto lo estoy haciendo mediante un if
si es diferente a vacio que haga lo siguiente
if($variable!=""){
$archivo = $_FILES["archivito"]["tmp_name"];
$tamanio = $_FILES["archivito"]["size"];
$tipo = $_FILES["archivito"]["type"];
$nombre = $_FILES["archivito"]["name"];


$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);
}
el problema es k no me guarda la imagen si ago lo anterior kisiera saber si alguien me podria a consegar
  #2 (permalink)  
Antiguo 11/06/2008, 11:33
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: validar si un campo file tiene datos

No. Cuándo haces un campo FILE no puedes acceder a su contenido con POST, sólo con FILES...

Ahora, como verificar si trae datos o no, prueba a usar isset() o empty()..

Ej :

if(isset($_FILES['archivito']))

ó

if(!empty($_FILES['archivito']))

Espero te sirva. Nos vemos.
  #3 (permalink)  
Antiguo 11/06/2008, 11:46
Avatar de blackmen10  
Fecha de Ingreso: marzo-2007
Ubicación: chiapas
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: validar si un campo file tiene datos

Gracias Por Responder

Pero En Si Mi Duda Sigue Existiendo Pues Lo K Kiero Saber Es K Como Puedo Hacer Para Que Cuando No Tenga Datos No Haga Nada Y Cuando Si Tenga Que Guarde La Imagen Por Eso Era La Idea De Hacerlo Con Un If Para Ver Si El Campo File Era Diferente De Vacio Si Se Ejecutara La Intruccion Y K Si Era Vacio Nada Mas Que No Hiciera Nada

Pero De Todas Maneras Gracias Amigos... Y Suerte
  #4 (permalink)  
Antiguo 11/06/2008, 11:51
(Desactivado)
 
Fecha de Ingreso: mayo-2008
Mensajes: 85
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: validar si un campo file tiene datos

Cita:
Iniciado por blackmen10 Ver Mensaje
Gracias Por Responder

Pero En Si Mi Duda Sigue Existiendo Pues Lo K Kiero Saber Es K Como Puedo Hacer Para Que Cuando No Tenga Datos No Haga Nada Y Cuando Si Tenga Que Guarde La Imagen Por Eso Era La Idea De Hacerlo Con Un If Para Ver Si El Campo File Era Diferente De Vacio Si Se Ejecutara La Intruccion Y K Si Era Vacio Nada Mas Que No Hiciera Nada

Pero De Todas Maneras Gracias Amigos... Y Suerte

$archivo = $_FILES["archivito"]["tmp_name"];
$tamanio = $_FILES["archivito"]["size"];
$tipo = $_FILES["archivito"]["type"];
$nombre = $_FILES["archivito"]["name"];

if(!empty($_FILES['archivito'])){
$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);
}else
echo'Deves seleccionar un archivo';
  #5 (permalink)  
Antiguo 11/06/2008, 11:55
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: validar si un campo file tiene datos

Así lo haría yo...

Código PHP:


if(!empty($_FILES['archivito'])) {
 
$archivo $_FILES["archivito"]["tmp_name"]; 
 
$tamanio $_FILES["archivito"]["size"];
 
$tipo $_FILES["archivito"]["type"];
 
$nombre $_FILES["archivito"]["name"];

 
$fp fopen($archivo"rb");
 
$contenido fread($fp$tamanio);
 
$contenido addslashes($contenido);
 
fclose($fp);

else
   echo 
"Debes seleccionar un archivo"
Ya qué si dejamos las variables fuera del IF, estaríamos asignando valores nulos ó vacíos, no sé el término correcto, a las variables.

Nos vemos.
  #6 (permalink)  
Antiguo 11/06/2008, 12:16
Avatar de blackmen10  
Fecha de Ingreso: marzo-2007
Ubicación: chiapas
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: validar si un campo file tiene datos

EN EFECTO LAS DOS SON BUENAS RESPUESTAS PERO ES LO MISMO K ME HACE CON MI CODIGO K TENIA EN UN INICIO QUE SI TIENE LA IMAGEN SI LA GUARDA PERO SI NO LA TIENE MANDA EL ERROR


Warning: fread(): supplied argument is not a valid stream resource in

Warning: fclose(): supplied argument is not a valid stream resource in

PERO GRACIAS POR EL COMENTARIO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:34.