Fatal error: Out of memory (allocated 30670848) (tried to allocate 13056 bytes) in /homepages/1/d191383484/htdocs/cadeauxplaisir/templates/pages/etape1_description_upload.php on line 119
Alors j'ai bien essayé d'augmenter la mémoire de mon php.ini mais chez 1&1 elle est limité à 32MO donc je vais surement devoir trouver un autre moyen mais je ne sais pas du tout dans quelle direction aller pouvez-vous m'orienter svp ?
Mon code d'upload si jamais ya besoin...
<?php
//Permet l'échange de sessions
if (isset($_POST["PHPSESSID"])) { session_id($_POST["PHPSESSID"]); }
else if (isset($_GET["PHPSESSID"])) { session_id($_GET["PHPSESSID"]); }
session_start();
//Vérifie la poids maximum de la photo
$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);
}
//Configuration
$dossier_photo = "../../photos/";
$upload = "Filedata";
$poids_maxi = 5000000; //5 Mo
$extension_valide = array("jpg", "jpeg", "gif", "png", "bmp");
//Autres variables
$MAX_FILENAME_LENGTH = 260;
$nom_photo_renomme = "";
$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"
);
//Validation de l'upload
if (!isset($_FILES[$upload])) {
HandleError("No upload found in \$_FILES for " . $upload);
exit(0);
} else if (isset($_FILES[$upload]["error"]) && $_FILES[$upload]["error"] != 0) {
HandleError($uploadErrors[$_FILES[$upload]["error"]]);
exit(0);
} else if (!isset($_FILES[$upload]["tmp_name"]) || !@is_uploaded_file($_FILES[$upload]["tmp_name"])) {
HandleError("Upload failed is_uploaded_file test.");
exit(0);
} else if (!isset($_FILES[$upload]['name'])) {
HandleError("File has no name.");
exit(0);
}
//Validation du poids du fichier
$poids_photo = @filesize($_FILES[$upload]["tmp_name"]);
if (!$poids_photo || $poids_photo > $poids_maxi) {
HandleError("Votre photo est trop volumineuse, merci d'en réduire le poids.");
exit(0);
}
if ($poids_photo <= 0) {
HandleError("File size outside allowed lower bound");
exit(0);
}
//Renomme le fichier pour éviter les conflits avec un nom identique
$nom_photo_renomme = md5(uniqid(rand(), true)); // uniquid() Génère un identifiant unique basé sur la date et heure courante en microsecondes.
$extension_photo = strtolower(strrchr($_FILES[$upload]['name'], '.')); //strrchr renvoie l'extension avec le point // strtolower met l'extension en minuscule
$nom_photo_renomme_avec_extension = $nom_photo_renomme . $extension_photo;
$targetFile = str_replace('//','/',$dossier_photo) . $nom_photo_renomme_avec_extension;
// Validate that we won't over-write an existing file
if (file_exists($dossier_photo . $nom_photo_renomme)) {
HandleError("Nom de photo déjà existante, merci de renommer votre photographie.");
exit(0);
}
// Validate file extension
$path_info = pathinfo($_FILES[$upload]['name']);
$file_extension = $path_info["extension"];
$is_valid_extension = false;
foreach ($extension_valide as $extension) {
if (strcasecmp($file_extension, $extension) == 0) {
$is_valid_extension = true;
break;
}
}
if (!$is_valid_extension) {
HandleError("Les fichiers avec cette extension ne sont pas autorisés.");
exit(0);
}
//////////////DEBUT THUMB///////////////
// Get the image and create a thumbnail
$img = imagecreatefromjpeg($_FILES["Filedata"]["tmp_name"]);
if (!$img) {
echo "ERROR:could not create image handle ". $_FILES["Filedata"]["tmp_name"];
exit(0);
}
$width = imageSX($img);
$height = imageSY($img);
if (!$width || !$height) {
echo "ERROR:Invalid width or height";
exit(0);
}
// Build the thumbnail
$target_width = 100;
$target_height = 100;
$target_ratio = $target_width / $target_height;
$img_ratio = $width / $height;
if ($target_ratio > $img_ratio) {
$new_height = $target_height;
$new_width = $img_ratio * $target_height;
} else {
$new_height = $target_width / $img_ratio;
$new_width = $target_width;
}
if ($new_height > $target_height) {
$new_height = $target_height;
}
if ($new_width > $target_width) {
$new_height = $target_width;
}
$new_img = ImageCreateTrueColor(100, 100);
if (!@imagefilledrectangle($new_img, 0, 0, $target_width-1, $target_height-1, 0)) { // Fill the image black
echo "ERROR:Could not fill new image";
exit(0);
}
if (!@imagecopyresampled($new_img, $img, ($target_width-$new_width)/2, ($target_height-$new_height)/2, 0, 0, $new_width, $new_height, $width, $height)) {
echo "ERROR:Could not resize image";
exit(0);
}
if (!isset($_SESSION["file_info"])) {
$_SESSION["file_info"] = array();
}
// Use a output buffering to load the image into a variable
ob_start();
imagejpeg($new_img);
$imagevariable = ob_get_contents();
ob_end_clean();
$file_id = md5($_FILES["Filedata"]["tmp_name"] + rand()*100000);
$_SESSION["file_info"][$file_id] = $imagevariable;
echo "FILEID:" . $file_id; // Return the file id to the script
//////////////FIN THUMB///////////////
//Création de la session photo
$array_photo = explode('_', $_POST["photo"]);
$_SESSION['temp']['photo']['perso' . $array_photo[0]]['photo' . $array_photo[1]] = $nom_photo_renomme_avec_extension;
if (!@move_uploaded_file($_FILES[$upload]["tmp_name"], $targetFile)) {
HandleError("Le chargement de votre photo a échoué, merci de renouveler son chargement et si vous n'y parvenez pas, cliquer sur la case destinée à cet effet.");
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;
}
?>