hize un script para subir fotos a una web el problema es ke cuando son varios megas el script falla...
funciona asi... subo un zip con todas las fotos que necesito...
luego el script descomprime, elimina el zip
y pasa todas las fotos a una carpeta las redimensiona, por ultimo les agrega un logotipo en marca de agua...
al principio me funcionaba bien.. pero de repente empezo a marcar un error algo asi...
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 11264 bytes) in /home2/chi1708/public_html/admin/fotos.php on line 170
y lo que pienso es ke hace todo el proceso de una sola vez... talvez si pudiera procesar foto por foto.. y entre cada una hacer una breve pausa en el script omitiria este error...
que me sugieren?
les paso el codigo..
Código PHP:
Ver original<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
}
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;
}
}
$query_Recordset1 = "SELECT * FROM fotos ORDER BY id DESC";
//Incluimos la libreria
include('pclzip/pclzip.lib.php');
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); }
$names = "GALERY_".date('Ymdhis').".zip"; $ruta_destino = "../fotos/";
}
$archivor=explode("\\", $_POST['portada']); if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { $insertSQL = sprintf("INSERT INTO fotos (archivo, fecha, titulo, portada, lugar, subcate) VALUES (%s, %s, %s, %s, %s, %s)", GetSQLValueString($nombre, "text"),
GetSQLValueString($_POST['fec_ano'].$_POST['fec_mes'].$_POST['fec_dia'], "text"),
GetSQLValueString($_POST['titulo'], "text"),
GetSQLValueString($_FILES['portada']['name'], "text"),
GetSQLValueString($_POST['lugar'], "text"),
GetSQLValueString($_POST['subcate'], "text"));
$archive = new PclZip($ruta_destino . $names);
mkdir("../fotos/".$nombre, 0777); $ruta="../fotos/".$nombre;
if ($archive->extract(PCLZIP_OPT_PATH
, $ruta, PCLZIP_OPT_REMOVE_PATH, 'temp_install') == 0) {
die("Error : ".$archive->errorInfo(true)); }
unlink($ruta_destino . $names);
$directorio = "../fotos/".$nombre."/";
while (false !== ($archivo = readdir($gestor))) { // Aqui haces la comparación
if (is_file($directorio.$archivo) && ($ext=='jpg' || $ext=='JPG' || $ext=='gif')) { $entradas[$archivo] = $directorio."/".$archivo;}}
// Recorres cada uno de los archivos.
foreach($entradas as $file => $tiempo){
}
$insertGoTo = "fotos.php";
if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ?
"&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING'];
}
}
function rrmdir($dir) {
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") rrmdir
($dir."/".$object); else unlink($dir."/".$object); }
}
}
}
if ((isset($_GET['delete'])) && ($_GET['delete'] != "")) { $deleteSQL = sprintf("DELETE FROM fotos WHERE id=%s", GetSQLValueString($_GET['delete'], "int"));
rrmdir('../fotos/'.$_GET['carpeta']);
}
?>