Foros del Web » Programando para Internet » PHP »

Problemas para subir archivo al servidor

Estas en el tema de Problemas para subir archivo al servidor en el foro de PHP en Foros del Web. Hola estoy haciendo un manager de noticias en el que subo una imagen que será la que use como portada le puse varias pruebas intermedias ...
  #1 (permalink)  
Antiguo 19/06/2006, 20:58
 
Fecha de Ingreso: mayo-2004
Ubicación: Ciudad de la Habana
Mensajes: 85
Antigüedad: 13 años, 7 meses
Puntos: 0
Problemas para subir archivo al servidor

Hola estoy haciendo un manager de noticias en el que subo una imagen que será la que use como portada le puse varias pruebas intermedias para ver si estaba funcionando y casi todas me las hizo pero la más importante que era la de subirme el archivo al servidor no me la hizo aquí les envio el codigo para que me den una mano y me digan que está mal en el mismo y como puedo solucionarlo pues ya me he rebanado los sesos buscandole una solución o una explicación y nada no he dado con ella. Espero que me puedan ayudar y de antemano les agradezco por leerme y ayudarme.

Salu2,

código
Código PHP:
<?php 
//Recogemos los valores de los campos del formulario 
$lang1$_POST['lang'];
$clasif $_POST['clasif'];
$tit $_POST['tit'];
$desc $_POST['desc'];
$not $_POST['not'];
$fte $_POST['fte'];
$fpub $_POST['fpub'];
$hpub $_POST['hpub'];
$tamano $_POST['MAX_FILE_SIZE'];
$destino =$_SERVER['DOCUMENT_ROOT'].'jc/img/'.$clasf.'/';

// sacamos nombre completo del archivo y lo mostramos

$name $_FILES['image']['name'];
echo 
$name;

//sacamos la extension y la mostramos
$ok false;
$ext explode('.',$name);
$nr count($ext);
$exte $ext[$nr-1];
if (
$exte == 'jpg' || $exte == 'gif'){
$ok true;
echo 
$exte;
}
//sacamos el tamaño y lo mostramos
$tam $_FILES['image']['size'];
echo 
$tam;

//chequeamos si la extension es admitida y si cumple con el tama;o maximo y procesamos el archivo.
if ($ok == true && $max >= $tam){
$tempname $_FILES['image']['tmp_name'];
 
copy($tempname$destino.$name);
} else { echo 
'ocurrio un error al subir el archivo el tama&ntilde;o no es el adecuado o no es una ext permitida';
}
//guardar la direccion donde estara el archivo para tenerlo dentro de la base de datos
$con mysql_connect('localhost','root','') or die ('no se pudo conectar al servidor');
$sel mysql_select_db('jc',$con) or die ('no se pudo conectar a la base de datos jc');
$rs mysql_query("Insert into noticias (lang,clasif,tit,desc,not,fte,fpub,hpub,url_inot) values('$lang','$clasif','$tit','$desc','$not','$fte','$fpub','$hpub','$destino')",$con);
?>
  #2 (permalink)  
Antiguo 19/06/2006, 21:19
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
yo no entiendo pq todos quieren inventar la rueda dos veces con el tema "subir archivos", si haces esto no vas a tener problemas
en vez de usar eso de copy podes usar move_uploaded_file(); una funcion hecha para hacer este trabajo
$carpeta_destino="./misimagenes/"; //un lugar por defecto para subir las imagenes
if(!move_uploaded_file($_FILES['image']['tmp_name'],$carpeta_destino.$_FILES['image']['name']))
echo "error al subir"; else echo "se subio la imagen";

fijate de adaptar este simple codigo a tu script, otra cosa q por ahi te va a server, es insertar los datos en la base de datos antes de operar con el archivo, los guardas y haces todo lo q quieras con ellos
luego cargas el archivo y si todo salio bien guardas los datos de la imagen en la base de datos, pq sino podes estar guardando datos de cosas q no se pudieron subir

espero te sirva
saludos
  #3 (permalink)  
Antiguo 19/06/2006, 21:56
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 15 años, 7 meses
Puntos: 7
has comprobado que tienes permisos de lectura/escritura en la carpeta?
__________________
No tengo firma ahora... :(
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 06:47.