Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/11/2007, 18:57
Albertair1
 
Fecha de Ingreso: noviembre-2007
Mensajes: 49
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: subir un archivo y guardar ruta en base de datos

Código PHP:
<?php
// technocurve arc 3 php mv block1/3 start
$mocolor1 "#000066";
$mocolor2 "#0000CC";
$mocolor3 "#0033FF";
$mocolor $mocolor1;
// technocurve arc 3 php mv block1/3 end
?>
<?php 
require_once('Connections/ldp.php'); ?>
<?php
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;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "upload")) {
  
$insertSQL sprintf("INSERT INTO Mensajes (titulo, lugar, f, m, t) VALUES (%s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['titulo'], "text"),
                       
GetSQLValueString($_POST['lugar'], "text"),
                       
GetSQLValueString($_POST['f'], "text"),
                       
GetSQLValueString($_POST['m'], "text"),
                       
GetSQLValueString($_POST['t'], "text"));

  
mysql_select_db($database_ldp$ldp);
  
$Result1 mysql_query($insertSQL$ldp) or die(mysql_error());
}

mysql_select_db($database_ldp$ldp);
$query_Mensajes "SELECT * FROM Mensajes";
$Mensajes mysql_query($query_Mensajes$ldp) or die(mysql_error());
$row_Mensajes mysql_fetch_assoc($Mensajes);
$totalRows_Mensajes mysql_num_rows($Mensajes);

//Maximo tamaño en bytes
$MAX_SIZE 3000000;
                            
//Array con extensiones           
$FILE_EXTS  = array('.zip','.jpg','.png','.gif','.rar'); 

//URL
$url =  "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

//Directorio de subida 
$upload_dir "archivos/";

if (!
is_dir($upload_dir)) {
  if (!
mkdir($upload_dir))
          die (
"El directorio no existe o no puede crearse");
  if (!
chmod($upload_dir,0777))
      die (
"Fallo el cambio de permisos a 0777.");
}

//Aca hacemos un log.txt con algunos datos como fecha e IP
if ($_FILES['userfile']) {
  
$archivo_log fopen("log.txt","a");
  
fwrite($archivo_log,date("Y.m.d h:i:s")." Subida - $_SERVER[REMOTE_ADDR] "
            
.$_FILES['userfile']['name']." "
            
.$_FILES['userfile']['type']."\n");
  
fclose ($archivo_log); 

  
$file_type $_FILES['userfile']['type']; 
  
$file_name $_FILES['userfile']['name'];
  
$file_ext strtolower(substr($file_name,strrpos($file_name,".")));

//Chequeo que los archivos no excedan el limite
  
if ( $_FILES['userfile']['size'] > $MAX_SIZE
     
$mensaje "El archivo debe pesar menos que 200KB.";
 
//Chequeo la extension
  
else if (!in_array($file_ext$FILE_EXTS))
     
$mensaje "Lo siento, archivos $file_ext no estan permitidos."
  else 
     
$mensaje do_upload($upload_dir$upload_url);
  
  print 
"<script>window.location.href='$url?mensaje=$mensaje'</script>";
}
else if (!
$_FILES['userfile']);
else 
    
$mensaje "Archivo invalido.";

//LISTA DE ARCHIVOS

$handle=opendir($upload_dir);
$filelist "";
while (
$file readdir($handle)) {
   if(!
is_dir($file) && !is_link($file)) {
      
$filelist .= "<a href='$upload_dir$file'>".$file."</a>";
      
$filelist .= "<sub><small><font color=grey>  ".date("d-m H:i"filemtime($upload_dir.$file))
                   .
"</font></small></sub>";
      
$filelist .="<br>";
   }
}

//Aca hacemos el upload
function do_upload($upload_dir$upload_url) {

    
$temp_name $_FILES['userfile']['tmp_name'];
    
$file_name $_FILES['userfile']['name']; 
    
//aca subimos los datos a la bd
mysql_query("INSERT INTO Mensajes (link) VALUES ('$upload_dir$file_name')");    
    
//Aca reemplazo saco las comillas y barras de los nombres
  
$file_name str_replace("\\","",$file_name);
  
$file_name str_replace("'","",$file_name);

//Aca reemplazo los espacios del nombre por guion bajo
  
$file_name str_replace(" ","_",$file_name);
  
$file_path $upload_dir.$file_name;

//Chequeo el nombre del archivo
  
if ( $file_name =="") { 
      
$mensaje "Nombre invalido o vacio";
      return 
$mensaje;
  }

 
$resultado  =  move_uploaded_file($temp_name$file_path);
  if (!
chmod($file_path,0777))
       
$mensaje "Fallo el cambio de permisos a 0777.";
  else
    
$mensaje = ($resultado)?"$file_name subido con exito." :
               
"Hubo un error al subir el archivo.";
  return 
$mensaje;
}
?>
bueno falto pero solo hasta aqui me deja poner el codigo el foro
pero con eso me entenderas.