Foros del Web » Programando para Internet » PHP »

PHP OO Agregarle script PHP al SWFupload y guardar en MySQL

Estas en el tema de Agregarle script PHP al SWFupload y guardar en MySQL en el foro de PHP en Foros del Web. Buenas, me gustaría si alguien me puede dar una mano con esto. Tengo un script para subir imagenes a un directorio y guardar sus datos ...
  #1 (permalink)  
Antiguo 20/06/2011, 21:28
 
Fecha de Ingreso: marzo-2009
Mensajes: 27
Antigüedad: 15 años
Puntos: 0
Agregarle script PHP al SWFupload y guardar en MySQL

Buenas, me gustaría si alguien me puede dar una mano con esto.
Tengo un script para subir imagenes a un directorio y guardar sus datos en mysql, esto funciona bien. El problema es que la cantidad de imágenes está definida con un número fijo y con un input para cada archivo. Yo necesito subir muchas imagenes con un solo input y sin limites de cantidades.

Necesito agregar parte de mi código a uno ya escrito (el SWFupload) pero no sé como hacerlo.

Este es el upload.php del SWFupload
Código PHP:
<?php


// Code for Session Cookie workaround
    
if (isset($_POST["PHPSESSID"])) {
        
session_id($_POST["PHPSESSID"]);
    } else if (isset(
$_GET["PHPSESSID"])) {
        
session_id($_GET["PHPSESSID"]);
    }

    
session_start();

// Check post_max_size (http://us3.php.net/manual/en/features.file-upload.php#73762)
    
$POST_MAX_SIZE ini_get('post_max_size');
    
$unit strtoupper(substr($POST_MAX_SIZE, -1));
    
$multiplier = ($unit == 'M' 1048576 : ($unit == 'K' 1024 : ($unit == 'G' 1073741824 1)));

    if ((int)
$_SERVER['CONTENT_LENGTH'] > $multiplier*(int)$POST_MAX_SIZE && $POST_MAX_SIZE) {
        
header("HTTP/1.1 500 Internal Server Error"); // This will trigger an uploadError event in SWFUpload
        
echo "POST exceeded maximum allowed size.";
        exit(
0);
    }

// Settings
    
$save_path getcwd() . "/uploads/"// The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)
    
$upload_name "Filedata";
    
$max_file_size_in_bytes 2147483647;                // 2GB in bytes
    
$extension_whitelist = array("jpg""gif""png");    // Allowed file extensions
    
$valid_chars_regex '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-';                // Characters allowed in the file name (in a Regular Expression format)
    
// Other variables    
    
$MAX_FILENAME_LENGTH 260;
    
$file_name "";
    
$file_extension "";
    
$uploadErrors = array(
        
0=>"There is no error, the file uploaded with success",
        
1=>"The uploaded file exceeds the upload_max_filesize directive in php.ini",
        
2=>"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form",
        
3=>"The uploaded file was only partially uploaded",
        
4=>"No file was uploaded",
        
6=>"Missing a temporary folder"
    
);


// Validate the upload
    
if (!isset($_FILES[$upload_name])) {
        
HandleError("No upload found in \$_FILES for " $upload_name);
        exit(
0);
    } else if (isset(
$_FILES[$upload_name]["error"]) && $_FILES[$upload_name]["error"] != 0) {
        
HandleError($uploadErrors[$_FILES[$upload_name]["error"]]);
        exit(
0);
    } else if (!isset(
$_FILES[$upload_name]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload_name]["tmp_name"])) {
        
HandleError("Upload failed is_uploaded_file test.");
        exit(
0);
    } else if (!isset(
$_FILES[$upload_name]['name'])) {
        
HandleError("File has no name.");
        exit(
0);
    }
    
// Validate the file size (Warning: the largest files supported by this code is 2GB)
    
$file_size = @filesize($_FILES[$upload_name]["tmp_name"]);
    if (!
$file_size || $file_size $max_file_size_in_bytes) {
        
HandleError("File exceeds the maximum allowed size");
        exit(
0);
    }
    
    if (
$file_size <= 0) {
        
HandleError("File size outside allowed lower bound");
        exit(
0);
    }


// Validate file name (for our purposes we'll just remove invalid characters)
    
$file_name preg_replace('/[^'.$valid_chars_regex.']|\.+$/i'""basename($_FILES[$upload_name]['name']));
    if (
strlen($file_name) == || strlen($file_name) > $MAX_FILENAME_LENGTH) {
        
HandleError("Invalid file name");
        exit(
0);
    }


// Validate that we won't over-write an existing file
    
if (file_exists($save_path $file_name)) {
        
HandleError("File with this name already exists");
        exit(
0);
    }

// Validate file extension
    
$path_info pathinfo($_FILES[$upload_name]['name']);
    
$file_extension $path_info["extension"];
    
$is_valid_extension false;
    foreach (
$extension_whitelist as $extension) {
        if (
strcasecmp($file_extension$extension) == 0) {
            
$is_valid_extension true;
            break;
        }
    }
    if (!
$is_valid_extension) {
        
HandleError("Invalid file extension");
        exit(
0);
    }

// Validate file contents (extension and mime-type can't be trusted)
    /*
        Validating the file contents is OS and web server configuration dependant.  Also, it may not be reliable.
        See the comments on this page: http://us2.php.net/fileinfo
        
        Also see http://72.14.253.104/search?q=cache:3YGZfcnKDrYJ:www.scanit.be/uploads/php-file-upload.pdf+php+file+command&hl=en&ct=clnk&cd=8&gl=us&client=firefox-a
         which describes how a PHP script can be embedded within a GIF image file.
        
        Therefore, no sample code will be provided here.  Research the issue, decide how much security is
         needed, and implement a solution that meets the needs.
    */


// Process the file
    /*
        At this point we are ready to process the valid file. This sample code shows how to save the file. Other tasks
         could be done such as creating an entry in a database or generating a thumbnail.
         
        Depending on your server OS and needs you may need to set the Security Permissions on the file after it has
        been saved.
    */
    
if (!@move_uploaded_file($_FILES[$upload_name]["tmp_name"], $save_path.$file_name)) {
        
HandleError("File could not be saved.");
        exit(
0);
    }

    exit(
0);


/* Handles the error output. This error message will be sent to the uploadSuccess event handler.  The event handler
will have to check for any error messages and react as needed. */
function HandleError($message) {
    echo 
$message;
}
?>
Y este es el input que usa:

Código HTML:
<html>
<body>
	<form method="post" action="upload.php" enctype="multipart/form-data">
		<input type="file" name="Filedata" id="Filedata" />
		<input type="submit" value="Upload" />
	</form>
</body>
</html> 
Y acá el archivo que uso yo para subir imágenes.
Este código es el que me gustaría agregar a "upload.php" para poder usar todo junto.

Código PHP:
<?php
$link
=Conectarse();

foreach(
$_POST as $nombre_campo => $valor){
$asignacion "\$" $nombre_campo "='" $valor "';"
 eval(
$asignacion); 


 


function 
thumbjpeg($imagen,$nombre) { 
     
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande". 
     
$dir_thumb "imagenes_ch/"
     
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg", 
     // el thumbnail se llamaría "tn_imagen1.jpg" 
     
$prefijo_thumb "tn_"

     
// Aquí tendremos el nombre de la imagen. 
    
$nombre1=basename($imagen); 
     
// Aquí la ruta especificada para buscar la imagen. 
     
$camino=dirname($imagen)."/"

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente. 
     
if (!file_exists($camino.$dir_thumb)) 
          @
mkdir ($camino.$dir_thumb0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb); 

     
// Aquí comprovamos que la imagen que queremos crear no exista previamente 
   
          
$img = @imagecreatefromjpeg($imagen) or die("No se encuentra la imagen $camino$nombre<br>\n"); 

          
// miramos el tamaño de la imagen original... 
          
$datos getimagesize($camino.$nombre1) or die("Problemas con $camino$nombre1<br>\n"); 

          
// intentamos escalar la imagen original a la medida que nos interesa 
         
$anchura 450;
            
$altura=($anchura*$datos[1])/$datos[0];

          
// esta será la nueva imagen reescalada 
          
$thumb imagecreatetruecolor($anchura,$altura); 
//echo $camino.$dir_thumb.$prefijo_thumb.$nombre;
          // con esta función la reescalamos 
          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]); 

          
// voilà la salvamos con el nombre y en el lugar que nos interesa. 
          
imagejpeg($thumb,$dir_thumb.$nombre); 
          
     } 


$fruits=$_POST['texto'];
$a=-1;
    foreach (
$fruits as $key => $value ){
        
$a++;
        
$texto_[$a]=$value;
    
}









for (
$j=0;$j<=10;$j++){

if (
is_uploaded_file($HTTP_POST_FILES['imagen']['tmp_name'][$j])) { 

$imagen $HTTP_POST_FILES['imagen']['name'][$j];
    
         
$destch ='../../imagenes_galeria';

        if(
$imagen!="" && copy($HTTP_POST_FILES['imagen']['tmp_name'][$j], $destch."/".$imagen)) 
        { 
                 
$sql="insert into galeria_fotos(id_galeria,foto,texto) values ('0','$imagen','$texto_[$j]')";

mysql_query($sql,$link);

        }
    
}
}

$fecha date("Y-m-d");
$sql="insert into galeria (titulo,descripcion,fecha) values ('$nombre','$descripcion','$fecha')";
mysql_query($sql,$link);
echo 
mysql_error();
$ultimo_id mysql_insert_id();
$sql="update galeria_fotos set id_galeria='$ultimo_id' where id_galeria='0'";
mysql_query($sql,$link);?>
Cualquier orientación o dato se agradece.
Muchas gracias!
  #2 (permalink)  
Antiguo 27/06/2011, 14:29
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Agregarle script PHP al SWFupload y guardar en MySQL

Sin complicar más las cosas puedes usar el plugin de jQuery que utiliza facebook para subir varios archivos a la vez. Busca en este mismo foro y encontrarás la dirección exacta, salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 27/06/2011, 14:33
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 2 meses
Puntos: 209
Respuesta: Agregarle script PHP al SWFupload y guardar en MySQL

para mi, este es el mejor
http://www.uploadify.com/demos/
  #4 (permalink)  
Antiguo 21/01/2012, 07:25
 
Fecha de Ingreso: enero-2012
Ubicación: Mar del Plata - Buenos Aires
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Agregarle script PHP al SWFupload y guardar en MySQL

En el archivo donde subis las imagenes, fijate en la parte de de <script> que tenes un "file_upload_limit : 100," esto quiere decir que podes subir hasta 100 imagenes.
saludos

Etiquetas: mysql, swfupload
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 00:41.