Comunidad de diseño web y desarrollo en internet online

Problema al subir fotos al servidor

Citar            
MensajeEscrito el 29 Jul 2009 07:20 pm
Hola comunidad! tengo 1problema para subir fotos al servidor por medio de un formulario, lo raro es que el .php crea los directorios y subdirectorios necesarios para guardar las fotos, y tb me sube la foto...pero las fotos que sube son completamente negras...he cambiado he código de mil maneras y nada...Los permisos de las carpetas estan todos a 777.

Pongo el script para que le hecheis un vistazo.Gracias.

PD: En localhost funciona perfectamente.

<?php

$nom_proyecto = $_POST["proyecto"];
$id_pro = $_POST["id_proyecto"];
$temp = './temp';
$files = $temp.$_FILES['foto']['name'];

$conexion = new mysqli("servidor","user","pass","bd");

move_uploaded_file($_FILES["foto"]["tmp_name"],$files);

$id_foto = auto_id($conexion);

$ruta_bg = CrearFoto($_FILES['foto']['name'], 500, 375, $nom_proyecto);
$ruta_sm = CrearThumb($_FILES['foto']['name'], 120, 90, $nom_proyecto);

$pos = fija_pos($conexion, $id_pro);

SubeRuta($ruta_bg, $ruta_sm, $conexion, $id_pro,$_FILES['foto']['name'],$id_foto,$pos);

function CrearFoto($file, $ancho, $alto, $project){
$img = imagecreatefromjpeg("./temp/".$file);
$imagen = imagecreatetruecolor($ancho, $alto);
imagecopyresized($imagen, $img, 0, 0, 0, 0, $ancho, $alto, ImageSX($img), ImageSY($img));
$ruta = "./fotos/".$project."/img/".$file;
imagejpeg($imagen, $ruta, 100);

return($ruta);

}


function CrearThumb($file, $ancho, $alto, $project){
$img = imagecreatefromjpeg("./temp/".$file);
$imagen = imagecreatetruecolor($ancho, $alto);
imagecopyresized($imagen, $img, 0, 0, 0, 0, $ancho, $alto, ImageSX($img), ImageSY($img));
$ruta = "./fotos/".$project."/thumb/".$file;
imagejpeg($imagen, $ruta, 100);

return($ruta);

}

function fija_pos($con,$id_pro)
{
$consulta = "SELECT count(id) as total FROM fotos WHERE id_proyecto='$id_pro'";
$result = $con->query($consulta);
$fila = $result->fetch_object();

return($fila->total + 1);
}

function SubeRuta($ruta_big, $ruta_small,$con, $id_pro,$nom_foto, $id_foto, $posicion)
{
$consulta = "INSERT INTO fotos (id,foto, thumb, id_proyecto, nom_foto, posicion) VALUES ('$id_foto','$ruta_big','$ruta_small','$id_pro','$nom_foto', $posicion);";
$result = $con->query($consulta);
}

function auto_id($con)
{

$consulta = "SELECT count(id) as num FROM fotos;";
$resultado = $con->query($consulta);
$fila = $resultado->fetch_object();

$id = $fila->num + 1;

return ($id);
}

unlink($files);

?>

Por otto13

4 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jul 2009 01:56 pm
El inconveniente es que subes una imagen y la guardas en el directorio temporal, luego creas dos imágenes en negro y nada mas... deberías asignarles a esas imágenes que tomen la información de la que ya has subido, has creado dos funciones y creo que en ningún momento se invocan, comprueba eso por las dudas

Mírate esta función es sencilla quizás te sirva :wink:

Código PHP :

function Subir_Archivo($Archivo, $Destino, $Tipo, $Tamaño){
         
   $Temporal_Archivo = $Archivo['tmp_name'];
   $Nombre_Archivo = $Archivo['name'];
   $Tipo_Archivo = $Archivo['type'];
   $Tamaño_Archivo = $Archivo['size'];
      
   if($Tipo == '' or $Tipo == NULL){
      $Tipo = $Tipo_Archivo;
   }      
      
   if($Tamaño == '' or $Tamaño == NULL){
      $Tamaño = $Tamaño_Archivo;
   }
      
   if($Archivo != '' or !isset($Archivo)){
      if($Destino != '' or !isset($Destino)){
         if($Tipo == $Tipo_Archivo){
            if($Tamaño >= $Tamaño_Archivo){
               if (is_uploaded_file($Temporal_Archivo)) {
                  move_uploaded_file($Temporal_Archivo, $Destino.$Nombre_Archivo);
                  $Salida = 'true';
               }
               else{
                  $Salida = 'Copy';
               }
            }
            else{
               $Salida = 'Size';
            }      
         }
         else{
            $Salida = 'Type';
         }      
      }
      else{
         $Salida = 'Location';
      }   
   }
   else{
      $Salida = 'File';
   }
   return $Salida;
   }

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.