Foros del Web » Programando para Internet » PHP »

Upload de archivos

Estas en el tema de Upload de archivos en el foro de PHP en Foros del Web. Hola a todos!! Tengo este código: Código PHP: <?php  require_once( '../../Connections/conn_db.php' );  ?> <?php  // declaracion de variables iniciales $upload_dir  =  "../../imagenes/fotos_autos/" ; $upload_url  =  $_SERVER [ 'HTTP_HOST' ]. ...
  #1 (permalink)  
Antiguo 28/01/2005, 08:07
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Sonrisa Upload de archivos

Hola a todos!! Tengo este código:
Código PHP:
<?php require_once('../../Connections/conn_db.php'); ?>
<?php 
// declaracion de variables iniciales
$upload_dir "../../imagenes/fotos_autos/";
$upload_url $_SERVER['HTTP_HOST']."/imagenes/fotos_autos/";
$nombre=$_POST['nombre'];
$do_=$_POST['do'];
if (isset(
$_POST['idFoto'])) {
    
$idFoto=$_POST['idFoto'];
}
// comprueba existencia directorios
if (!is_dir($upload_dir)) {
    die (
"<div align='center'>El directorio de almacenamiento de archivos no existe.</div>");
}

//conectamos a base y sacamos $ULTIMOID
if ($do_=="insert") {
    
mysql_select_db($database_conn_db$conn_db);
    
$query_rs_ultimoid "SELECT IDFOTO FROM fotos ORDER BY IDFOTO DESC";
    
$rs_ultimoid mysql_query($query_rs_ultimoid$conn_db) or die(mysql_error());
    
$row_rs_ultimoid mysql_fetch_assoc($rs_ultimoid);
    
$totalRows_rs_ultimoid mysql_num_rows($rs_ultimoid);
    
$ultimoid $row_rs_ultimoid['IDFOTO'] + 1;

} elseif (
$do_=="update") {
    
$ultimoid $idFoto;
}

    
$temp_name $_FILES['userfile']['tmp_name'];
    
$file_name $_FILES['userfile']['name']; 
    
$file_type $_FILES['userfile']['type']; 
    
$file_size $_FILES['userfile']['size']; 
    
$result    $_FILES['userfile']['error'];
    
$file_url  $upload_url.$file_name;
    
$extension explode(".",$file_name);    /* extrae la extension del archivo. Se convierte en array */
    
$num count($extension)-1;        /* extrae la extension del archivo. Se convierte en array */
    
$file_path $upload_dir."foto_".$ultimoid.".".$extension[$num];    /* ruta relativa hacia el archivo de destino. con id incluida */
    
$file_final_name "foto_".$ultimoid.".".$extension[$num];

    
//    Chequeo de seleccion de archivo
    
if ( $file_name == "") { 
        
$message "Debe seleccionar un archivo para subir.";
        
$estado "no_subido";
    }
    
// Chequeo tamaño archivo
    
else if ( $file_size 60000) {
        
$message "El archivo pesa más de 60kb.";
        
$estado "no_subido";
    }
    
// Chequeo tipo archivo
    
else if ($extension[$num] != "jpg") {
        
$message "El archivo a subir debe estar en formato jpg" ;
        
$estado "no_subido";
    }
    
if (
$estado != "no_subido") {
$result move_uploaded_file($temp_name$file_path);            /* copia el archivo al path que corresponde */
$message = ($result) ? "Usted a subido correctamente el archivo:<a href=$file_path>$file_name</a>" 
                            
"Algo está mal con la subida de los archivos.";                    
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
if (
$do_=="insert") {
$insertSQL sprintf("INSERT INTO fotos (NOMBRE, RUTA) VALUES (%s, %s)",
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($file_final_name"text"));
}
if (
$do_=="update") {
    
$insertSQL "UPDATE fotos SET NOMBRE='$nombre', RUTA='$file_final_name' WHERE IDFOTO=$idFoto";
}

  
mysql_select_db($database_conn_db$conn_db);
  
$Result1 mysql_query($insertSQL$conn_db) or die(mysql_error());
}
header("Location: carga_fotos.php");
if (
$do_=="insert") {
mysql_free_result($rs_ultimoid);
}
?>
y me tira el siguiente error cuando ejecuto la opcion update:
Notice: Undefined variable: estado in c:\desarrollos\web\infosud\unirent\administracion\ cfg\upload.php on line 56

Warning: move_uploaded_file(../../imagenes/fotos_autos/foto_
Notice: Undefined index: IDCATEG in c:\desarrollos\web\infosud\unirent\administracion\ cfg\carga_fotos.php on line 150
.jpg): failed to open stream: Invalid argument in c:\desarrollos\web\infosud\unirent\administracion\ cfg\upload.php on line 57

Warning: move_uploaded_file(): Unable to move 'C:\Archivos de programa\EasyPHP1-7\tmp\phpC.tmp' to '../../imagenes/fotos_autos/foto_<br /> <b>Notice</b>: Undefined index: IDCATEG in <b>c:\desarrollos\web\infosud\unirent\administraci on\cfg\carga_fotos.php</b> on line <b>150</b><br />.jpg' in c:\desarrollos\web\infosud\unirent\administracion\ cfg\upload.php on line 57
Algo está equivocado en su sintax cerca '=
Notice: Undefined index: IDCATEG in c:\desa' en la linea 1

A los warning no les presto demasiada atención pero los errores que tira son los de las líneas coloreadas en rojo

Lo extraño es que en el código la línea 150 no existe y el ultimo error realmente no lo comprendo. Sé que es bastante engorroso revisar código pero... alguien podría darme una mano con esto?????
Además pregunto: Por qué no estoy habilitada para subir código??? es mucho mas cómodo para el que lee el mensaje si dentro de él el código se encuentra en un sector con scrollbars, pero bueh! es irrelevante de todos modos mi pregunta.
Muchisimas gracias de antemano por la ayuda que me puedan dar!!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar

Última edición por Cluster; 28/01/2005 a las 08:56
  #2 (permalink)  
Antiguo 28/01/2005, 08:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Además pregunto: Por qué no estoy habilitada para subir código??? es mucho mas cómodo para el que lee el mensaje si dentro de él el código se encuentra en un sector con scrollbars, pero bueh! es irrelevante de todos modos mi pregunta.
El botón PHP hace eso .. por lo menos colorea el código .. fijate como quedó tu código tras mi edición.

Un saludo,
  #3 (permalink)  
Antiguo 28/01/2005, 09:01
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Ok Cluster, mil gracias!!!
Es que no le presté demasiada atención a los botones, soy un poco colgada...
Respecto de la consulta en si, de php... tenés una idea de por qué puede llegar a fallar????
De todas formas gracias de nuevo por la ayuda para facilitar la lectura de mi código!!!!
__________________
Why can't we not be sober?
www.partitorium.com.ar
  #4 (permalink)  
Antiguo 28/01/2005, 09:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Los errores de tipo "notice" te están ayudando a ver tu problema .. ese tipo de mensajes de error los puedes ver o decidir que no quieres verlos (pero en este caso bien útiles son para ver otros mensajes de error que se puedan estar derivando).

Todo esto sobre visualización o nivel de mensajes de error que deseas ver en tus aplicaciones lo controla la directiva de PHP (php.ini):

error_reporting
y también en tiempo de ejecución de tus scripts por la la función de mismo nombre_
www.php.net/error_reporting

En tu caso particular .. revisa tus condiciones y evalua si se están produciendo cuando corresponde .. tienes muchos if() con elseif() y várias condicines .. si te dice que una variable no está definida es por qué no entró a alguno de tus IF() donde le das un valor que luego usas. En su defecto o bien elminas ese tipo de mensajes de "aviso" por configuración . .o defines un valor por defecto a varaibles como tu $estado .. tipo $estado=''; al principio de tu script .. los "condicionales" subsiguientes ya actuaran si corresponde y darán otro valor (y por ende "declararan") esa variable.

Un saludo,
  #5 (permalink)  
Antiguo 28/01/2005, 09:46
Avatar de verinchi  
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires
Mensajes: 647
Antigüedad: 19 años, 7 meses
Puntos: 2
Muchiiiisimas gracias Cluster!!!!
Veré qué hago, lo mas probable es la solución que proponés de inicializar la variable en un valor. Sucede que estoy trabajando sobre el código de alguien mas y no tengo tanta experiencia como para analizar lo que otro hizo.
Un saludo grande y te cuento cuando se ejecute normalmente.
__________________
Why can't we not be sober?
www.partitorium.com.ar
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 19:15.