file Upload con ridimensionamento

Se lo modifico così mi da i soliti errori e mi dice impossibile salvare la miniatura
PHP:
<form action="php/Upload.php" method="post" enctype="multipart/form-data">
<input name="Filedata" type="file" id="Filedata" size="40"><br>
<input name="invia" type="submit" id="invia" value="invia">
</form>
 
ciao
per scrupolo sono andati a riprovarlo e a me funzia.

The requested URL /dir/%3C?php%20echo%20htmlspecialchars($_SERVER[%27PHP_SELF%27]);?%3E was not found on this server.
un dubbio: ha messo il form nella stessa pagina php o hai messo il form in un'altra pagina tra l'altro con estenzione .htm (mi sembra probabile visto il tipo di errore)?
sia il form che la parte php devono stare nella stessa pagina php
se li dividi in due pagine al posto di
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post" enctype="multipart/form-data">
devi mettere il nome della pagina che ti fa l'immagine ridotta e cioè
<form action="pagina_che_riduce.php" method="post" enctype="multipart/form-data">

ricorda se la pag non ha estenzione .php l'interbrete non la prende in considerazione quindi quello che è compreso tra <?php ... ?> (tag compresi) viene interpretato dal bw come un semplice testo e nel caso tuo cerca una pagina che abbia quel nome assurdo
 
Ho provato ma mi da sempre gli stessi errorri :O
ho inserito questo nella pagina questa volta con estensione.php
PHP:
<form action="php/Upload.php" method="post" enctype="multipart/form-data">
<input name="Filedata" type="file" id="Filedata" size="40"><br>
<input name="invia" type="submit" id="invia" value="invia">
</form>

ma mmi da sempre gli stessi errori e mi dice impossibile salvare la minuatura
 
Questa è la pagina php cge contiene il form per Upload:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>prova upload</title>
</head>
 <body>
 <div class="up">
<form action="php/Upload.php" method="post" enctype="multipart/form-data">
<input name="Filedata" type="file" id="Filedata" size="40"><br>
<input name="invia" type="submit" id="invia" value="invia">
</form>  
 </body>
</html>

Questo è lo script php per uppare rinominare e ridimensionare la foto:

PHP:
<?php 
if(isset($_POST['invia'])){
    $percorso = '../Images/thumb/';
    $nome_file=basename( $_FILES['Filedata']['name'] );
    //qui necessita un controllo
    if($nome_file !=""){
        //echo"$nome_file";
        $uploadfile = $percorso.$nome_file;
        $sposta=move_uploaded_file( $_FILES['Filedata']['tmp_name'] ,$uploadfile );
        $thumbComp = 100;
        list($width, $height, $type, $attr) = getimagesize($uploadfile);
        $max_w=130;
        $max_h=130;
        $ratio = @min($max_w/$width,$max_h/$height);
        if ($ratio < 1){
            $w = @floor($ratio*$width);
            $h = @floor($ratio*$height);
            $thumb = imagecreatetruecolor($w,$h);
            $source = imagecreatefromjpeg($uploadfile);
            imagecopyresized($thumb, $source, 0, 0, 0, 0,$w,$h,$width,$height);
            $dir=$percorso."1.jpg";
            imagejpeg($thumb,$dir,$thumbComp)or die("Impossibile salvare la miniatura");
            unlink($uploadfile);
        }else{
            $renome = $percorso."1.jpg";
            //cancello le vacchia 1.jpg
            unlink($renome);
            //e carico la nuova
            $sposta=rename( $uploadfile ,$renome);
        }
    }else{
        echo "file non indicato<br /<";
    }
 }
?>

SCHEMA

httpdocs il file provaUpload.php contenente il form per l'upload
in una cartella chiamata php c'è lo script per ridimensionare la foto che si chiama Upload.php
poi c'è una cartlla chiamata Images che contiene una cartella chiamata thumb con dentro la foto 1.jpg

httpdocs
provaUpload.php
php
Uplaod.php
Images
- thumb
1.jpg
 
ciao
se è così
httpdocs
...|- provaUpload.php
...|- php
.......| - Uplaod.php
.........|Images
............|thumb
...............| - 1.jpg
il percorso da upload.php a 1.jpg è
PHP:
$percorso = 'Images/thumb/'; //images e thumb sono sottocartelle di php
se invece è cosi
httpdocs
...|- provaUpload.php
...|php
...|..- Uplaod.php
...|Images
........|thumb
..........|.. 1.jpg
PHP:
$percorso = '../Images/thumb/'; //images è allo stesso livello di php
 
ciao
piccolo dubbio: le librerie GD sono attive? guarda su ini.php se stai lavorando in locale le puoi attivare, se stai lavorando in remoto devi chiedere al tuo provider
 
Ciao Borgo, scusa la mancata risposta ma attendevo la risposta del provider prima di dirti.
Si ho attive le librerie.
Lo script che sembra essere piu' adatto è questo mi da un solo errore ovvero questo alla riga 24 che non riesco ad interpretare:
Warning: imagejpeg() [function.imagejpeg]: Unable to open '../Images/thumb/1.jpg' for writing: Permission denied in /home/site/domains/site.com/public_html/dir/php/Upload.php on line 24
Impossibile salvare la miniatura

PHP:
<?php 
 header('Cache-Control: no-cache');
 header('Pragma: no-cache');
 
 $foto="1.jpg"; 
 echo"$foto<br>";
 $percorso = '../Images/thumb/';
 $uploadfile = ''.$percorso.basename( $_FILES['Filedata']['name'] );
 $sposta=move_uploaded_file( $_FILES['Filedata']['tmp_name'] ,$uploadfile );
 $nomefileimmagine=$percorso.$foto;
 if($sposta){
 if (file_exists($nomefileimmagine)){
 unlink($nomefileimmagine);}
 $nuovofile=''.$percorso.$_FILES['Filedata']['name'];
 rename($nuovofile,$nomefileimmagine);
 echo($nomefileimmagine);
 }
 $img =$percorso.$foto;
 $thumbComp = 100; 
 list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']);
 $thumb = imagecreatetruecolor(130,130);
 $source = imagecreatefromjpeg($img);
 imagecopyresized($thumb, $source, 0, 0, 0, 0,130,130,imageSx($source),imageSy($source));
 imagejpeg($thumb, $img, $thumbComp) or die("Impossibile salvare la miniatura");
 
?>

Non è che per caso l'errore sta nel fatto che la variabile foto l'ho scritta prima della variabile percorso?
 
Ora ho riprovato il tuo script mi carica la foto nella directori giusta ma non la rinomina ne ridimensiona :(
Comunque preferisco il tuo script è di gran lunga migliore e completo :)
Complimenti! se si elimina sto errore è fatta ma non riesco a codificarlo :(
credo che mi dica che non ci sono permessi ma ho dato permessi a tutto :O
 
ciao
credo di no
Warning: imagejpeg() [function.imagejpeg]: Unable to open '../Images/thumb/1.jpg' for writing: Permission denied in /home/site/domains/site.com/public_html/dir/php/Upload.php on line 24
verifica i permessi di scrittura delle cartelle
 
Ciao Borgo, grazie mille funziona perfettamente.
Il tuo script ha sempre funzionato! il problema era che la foto 1.jpg non aveva i permessi 777
e il programma non riusciva evidentemente a lavorarci su appena ho dato i permessi alla foto
il programma ha elaborato perfettamente tutto :)
Grazie mille sempre geniale e disponibilissimo come al solito :)
 

Discussioni simili