Ho riscontrato vari problemi in uno script e non so come risolverli, qualcuno può aiutarmi?
Quando uppo un immagine .gif animata una volta uppata e aperta non si muove.
Ho riscontrato vari problemi in uno script e non so come risolverli, qualcuno può aiutarmi?
Quando uppo un immagine .gif animata una volta uppata e aperta non si muove.
dddd
Posta il codice della form e lo script di upload che stai utilizzando.
Se applichi la funzione md5_file() a file caricato ed al file originale, ottieni lo stesso valore?
il codie è questo:
<?php ini_set("memory_limit", "200000000"); // for large images so that we do not get "Allowed memory exhausted"?>
<?php
// upload the file
if ((isset($_POST["submitted_form"])) && ($_POST["submitted_form"] == "image_upload_form")) {
// file needs to be jpg,gif,bmp,png and 4 MB max
if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg" || $_FILES["image_upload_box"]["type"] == "image/gif" || $_FILES["image_upload_box"]["type"] == "image/png") && ($_FILES["image_upload_box"]["size"] < 4000000))
{
// some settings
$max_upload_width = 2592;
$max_upload_height = 1944;
// if user chosed properly then scale down the image according to user preferances
if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
$max_upload_width = $_REQUEST['max_width_box'];
}
if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
$max_upload_height = $_REQUEST['max_height_box'];
}
// if uploaded image was JPG/JPEG
if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){
$image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
}
// if uploaded image was GIF
if($_FILES["image_upload_box"]["type"] == "image/gif"){
$image_source = imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
}
// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)
// if uploaded image was BMP
if($_FILES["image_upload_box"]["type"] == "image/bmp"){
$image_source = imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
}
// if uploaded image was PNG
if($_FILES["image_upload_box"]["type"] == "image/png"){
$image_source = imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
}
$remote_file = "image_files/" . $_FILES["image_upload_box"]["name"];
$ext = substr($remote_file, strrpos($remote_file, '.'));
$remote_filename = substr($remote_file, 0, -strlen($ext));
$i = 1;
while (file_exists($remote_file)) {
$remote_file = $remote_filename . $i . $ext;
$i++;
}
imagejpeg($image_source,$remote_file,100);
chmod($remote_file,0644);
// get width and height of original image
list($image_width, $image_height) = getimagesize($remote_file);
if($image_width>$max_upload_width || $image_height >$max_upload_height){
$proportions = $image_width/$image_height;
if($image_width>$image_height){
$new_width = $max_upload_width;
$new_height = round($max_upload_width/$proportions);
}
else{
$new_height = $max_upload_height;
$new_width = round($max_upload_height*$proportions);
}
$new_image = imagecreatetruecolor($new_width , $new_height);
$image_source = imagecreatefromjpeg($remote_file);
imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
imagejpeg($new_image,$remote_file,100);
imagedestroy($new_image);
}
imagedestroy($image_source);
header("Location: index.php?upload_message=Immagine caricata con successo&upload_message_type=success&show_image=$r emote_file");
exit;
}
else{
header("Location: index.php?upload_message=Assicurati che l'immagine abbia estenzione jpg, gif o png e che la sua grandezza sia minore o uguale a 4MB&upload_message_type=error");
exit;
}
}
?>
Il form di upload è questo:
<form action="index.php" method="post" enctype="multipart/form-data" name="image_upload_form" id="image_upload_form" style="margin-bottom:0px;">
<label>Grandezza massima dei file 4MB. Si possono inserire file jpg, gif, png.</label>
<input name="image_upload_box" type="file" id="image_upload_box" size="40" />
<input type="submit" name="submit" value="Carica Immagine" />
e oltre al problema delle gif che non si muovono c'è quello delle png che non rimangono con lo sfondo trasparente.
dddd
E' ovvio che le gif animate non lo siano più una volta caricate: le salvi come JPEG.