Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Upload file JPEG & Resize (NO THUMBNAIL)

    So che ci sono tanti post su questo argomento e vi assicuro che li ho letti tutti, ma un po per incapacità e un po per disperazione non riesco ad applicare gli esempi al mio semplice caso...

    Da un form passo un'immagine JPG che deve essere uplodata sul server dentro una cartella nominata con nome utente che viene creata al momento prendendo il nome utente dal form.

    ecco... vorrei fare l'upload dell'immagine ridimensionandola... tutto qui...
    non funziona... mi dice che:

    Warning: copy(1): failed to open stream: No such file or directory in /web/htdocs/www.verybear.com/home/verybear/upload.php on line 92
    /web/htdocs/www.verybear.com/home/verybear/users/prova/dalladoccia04.jpgORIZZONTALE 450 x 338 THUMB: Resource id #7 SOURCE: Resource id #9 NUOVAFOTO: 1 Registrazione avvenuta file uplodato
    Warning: unlink(1): No such file or directory in /web/htdocs/www.verybear.com/home/verybear/upload.php on line 131


    $user è la varibile utente che gli passo dal form
    $UploadedFile è il file che gli passo dal form


    Codice PHP:
    //CREO LA CARTELLA UTENTE 
    //nome cartella destinazione in base alla user
    $cartellaDati="users/".$user;
    //CREO LA CARTELLA
    mkdir($cartellaDati,0755);

    if (
    $dir = @opendir($cartellaDati)) {
        
    //UPLOAD DELLA FOTO PRINCIPALE
        
    $path="/web/htdocs/www.verybear.com/home/verybear/users/".$user."/";
        if( 
    $UploadedFile != none )
        {
        

            if (
    copy$UploadedFile"$path/$UploadedFile_name)){
            
            
            
            
            
                
    //dimensioni del file
        
    list($width$height) = getimagesize($UploadedFile);
        echo 
    "$width x ";
        echo 
    "$height";
        
    //ridimensionamento
        
    if($width>=$height){
        
    //foto orizzontale
        
    if ($width>450){
        
        
    $newwidth 450;
        
    $newheight ceil(($newwidth*$height)/$width);
        
        
    $thumb imagecreatetruecolor($newwidth$newheight);
        
    $source imagecreatefromjpeg($path.$UploadedFile_name);
        
    $nuovaFoto imagecopyresized($thumb$source0000$newwidth$newheight$width$height);
        
    copy$nuovaFoto"$path/$UploadedFile_name);
        
        echo 
    $path.$UploadedFile_name;
        echo 
    "ORIZZONTALE";
        echo 
    $newwidth x ";
        echo 
    "$newheight";
        echo 
    " THUMB: $thumb ";
        echo 
    " SOURCE: $source ";
        echo 
    " NUOVAFOTO: $nuovaFoto ";
        }
        
        }else{
        
    //foto verticale
        
        
    $newheight 370;
        
    $newwidth ceil(($newheight*$width)/$height);
        
        echo 
    "VERTICALE";
        echo 
    $newwidth x ";
        echo 
    "$newheight";
        
        
    $thumb imagecreatetruecolor($newwidth$newheight);
        
    $source imagecreatefromjpeg($UploadedFile);
        
    $nuovaFoto imagecopyresized($thumb$source0000$newwidth$newheight$width$height);    
        
    copy$nuovaFoto"$path/$UploadedFile_name);
        }
        
            
            
            
            
            
            
            
                
    //print "$UploadedFile copiato con successo in $path/$UploadFile_name
    ";
                echo "
    Registrazione avvenuta file uplodato";
            }else{
                print "
    Errore.. upload non riuscito
    ";
            }
            unlink(
    $nuovaFoto);
        }else{
            print "
    Errore.. nessun file.
    ";
        }

    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  2. #2
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    prova con una roba del genere (l'ho scritta ma non controllata, a occhio dovrebbe andare però):
    Codice PHP:
    $cartellaDati="users/".$user;
    mkdir($cartellaDati,0755);
    $path="/web/htdocs/www.verybear.com/home/verybear/users/".$user."/"
    if(
    $UploadedFile != none){
        
    $source=$path."/".$UploadedFile_name;
        
    copy$UploadedFile$source )or die(mysql_error());
        
    resize($UploadedFile$source$path$new_width$new_height);
    }

    //$new_width, $new_height sono le dimensioni della immagine finale

    function resize($nomeimage$source_path$destination_path$new_width$new_height){
        list(
    $width$height$type$attr) = getimagesize($source_path.$nomeimage);
        
    $compression=100;
        
    $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");
        
    $srcimg=ImageCreateFromJPEG($source_path.$nomeimage) or die("Problemi nell'aprire l'immagine");
        
    $w=ImageSX($srcimg);
        
    $h=ImageSY($srcimg);
        
    $ro=$new_width/$new_height;
        
    $ri=$w/$h;
        if(
    $ro<$ri){
            
    $par="h"//immagine alta, verticale
        
    }else{
            
    $par="w"//immagine larga, orizzontale
        
    }
        if(
    $par=="h"){
            
    $ih=$h;
            
    $conv=$new_width/$new_height;
            
    $iw=$conv*$ih;
            
    $cw=($w/2)-($iw/2);
            
    $ch=($h/2)-($ih/2);
        }else if(
    $par=="w"){
            
    $iw=$w;
            
    $conv=$new_height/$new_width;
            
    $ih=$conv*$iw;
            
    $cw=($w/2)-($iw/2);
            
    $ch=($h/2)-($ih/2);
        }

    //qui poi ci andrà messo un ciclo per verificare il tipo di immagine, ora diamo per scontato che sia jpg

        
    ImageCopyResized($destimg,$srcimg,0,0,$cw,$ch,$new_width,$new_height,$iw,$ih) or die("Problemi nel ridimensionamento");
        
    ImageJPEG($destimg,$destination_path.$nomeimage,$compression) or die("Problemi nel salvataggio");


    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  3. #3
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    ah dimenticavo, alla fine un bel
    Codice PHP:
    unlink($source); 
    per pulire il server

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  4. #4
    Mi da questo errore... probabilmente va a creare in una cartella tmp il file temporaneo ma sta cartella tmp dentro la cartella utente non c'è quindi da errore...


    Warning: getimagesize(/web/htdocs/www.verybear.com/home/verybear/users/prova/dalladoccia04.jpg/tmp/php8wQAc7): failed to open stream: Not a directory in /web/htdocs/www.verybear.com/home/verybear/upload.php on line 5

    Warning: imagecreatetruecolor(): Invalid image dimensions in /web/htdocs/www.verybear.com/home/verybear/upload.php on line 7
    Problemi nelle creazioni dell'immagine
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  5. #5
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    cerca di separare i path dal nome file..nella funzione che ti ho scritto
    Codice PHP:
    resize($nome$source_path$destination_path$w$h); 
    devi dargli il $nome dell'immagine, la cartella dove risiede ($source_path, ma SOLO l'indirizzo senza il nome dell'immagine) e la cartella di destinazione ($destination_path, solo l'indirizzo della cartella) e dovrebbe funzionare

    Codice PHP:
    $source_path="/home/verybear/users/prova/";
    $nome=$UploadedDile_name;
    $destination_path="/home/verybear/users/prova/";
    $h=xx//altezza che vuoi abbia l'immagine finale
    $w=xx//larghezza che vuoi abbia l'immagine finale 

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  6. #6
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    a me così funziona perfettamente:
    pagina engine.php:
    Codice PHP:
    <?
    $nome
    =$_POST["nome"];
    $file=$_FILES['file']['name'];
    $tmp=$_FILES['file']['tmp_name'];
    $cartellaDati="users/".$nome;
    mkdir($cartellaDati,0755);
    $path="users/".$nome."/";
    $new_width=300;
    $new_height=300;

    $copy=$cartellaDati."/".$nome;
    copy$tmp$copy )or die(mysql_error());
    $nomeimage=$nome.".jpg";
    resize($nomeimage$path$path$new_width$new_height);


    //$new_width, $new_height sono le dimensioni della immagine finale

    function resize($nomeimage$source_path$destination_path$new_width$new_height){
        list(
    $width$height$type$attr) = getimagesize($source_path.$nomeimage);
        
    $compression=100;
        
    $destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");
        
    $srcimg=ImageCreateFromJPEG($source_path.$nomeimage) or die("Problemi nell'aprire l'immagine");
        
    $w=ImageSX($srcimg);
        
    $h=ImageSY($srcimg);
        
    $ro=$new_width/$new_height;
        
    $ri=$w/$h;
        if(
    $ro<$ri){
            
    $par="h"//immagine alta, verticale
        
    }else{
            
    $par="w"//immagine larga, orizzontale
        
    }
        if(
    $par=="h"){
            
    $ih=$h;
            
    $conv=$new_width/$new_height;
            
    $iw=$conv*$ih;
            
    $cw=($w/2)-($iw/2);
            
    $ch=($h/2)-($ih/2);
        }else if(
    $par=="w"){
            
    $iw=$w;
            
    $conv=$new_height/$new_width;
            
    $ih=$conv*$iw;
            
    $cw=($w/2)-($iw/2);
            
    $ch=($h/2)-($ih/2);
        }

    //qui poi ci andrà messo un ciclo per verificare il tipo di immagine, ora diamo per scontato che sia jpg

        
    ImageCopyResized($destimg,$srcimg,0,0,$cw,$ch,$new_width,$new_height,$iw,$ih) or die("Problemi nel ridimensionamento");
        
    ImageJPEG($destimg,$destination_path.$nomeimage,$compression) or die("Problemi nel salvataggio");
    }
    ?>
    pagina index.php (il form):
    Codice 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=iso-8859-1" />
    <
    title>Documento senza titolo</title>
    </
    head>

    <
    body>
    <
    form action="engine.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
      


        <
    input name="nome" type="text" id="nome" />
    </
    p>
      


        <
    input type="file" name="file" />
    </
    p>
      


        <
    input type="submit" name="Submit" value="Invia" />
      </
    p>
    </
    form>
    </
    body>
    </
    html

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  7. #7
    Non riesco proprio a farlo funzionare.. però il mio script precedente funzionava quasi...

    $UploadedFile è il file che gli passo dal form
    $path ="/web/htdocs/www.verybear.com/home/verybear/users/prova/"

    la cartella prova viene generata sul momento in base all'utente
    i permessi assegnati sono chmod 777

    Codice PHP:
        //dimensioni del file
        
    list($width$height) = getimagesize($UploadedFile);
        
    //INIZIO LE OPERAZIONI DI RIDIMENSIONAMENTO E CALCOLO W e H
        //foto orizzontale
        
    if($width>=$height){
        if (
    $width>450){
        
    $newwidth 450;
        
    $newheight ceil(($newwidth*$height)/$width);
        
    $thumb imagecreatetruecolor($newwidth$newheight);
        
    $source imagecreatefromjpeg($UploadedFile);
        
    imagecopyresized($thumb$source0000$newwidth$newheight$width$height);
        
    imagejpeg($thumb,$path);
        echo 
    "

    IMMAGINE ORIZZONTALE
    "
    ;
        echo 
    "DIM INIZIALE: $width x $height
    "
    ;
        echo 
    "DIM FINALE: $newwidth x $newheight
    "
    ;
        echo 
    "THUMB: $thumb
    "
    ;
        echo 
    "SOURCE: $source
    "
    ;
        }} 
    La risposta è:

    Warning: imagejpeg(): Unable to open '/web/htdocs/www.verybear.com/home/verybear/users/prova/' for writing in /web/htdocs/www.verybear.com/home/verybear/upload.php on line 63

    MA PERCHE'??
    LINEA 63: imagejpeg($thumb,$path);
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  8. #8
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    bho non sò..postami il codice di tutte e due le pagine, quella con il form e quell'altra (sono pagine semplici vero? senza template spero )

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

  9. #9
    Sei veramente gentile..
    scarica lo zip:

    www.verybear.com/verybear/temp.zip

    Però non credo che ci sia nulla di particolare nel form.
    Ho capito che quando poni una domanda e nessuno ti sa rispondere, è arrivato il momento in cui sei tu a poter dare delle risposte agli altri...

  10. #10
    Utente di HTML.it L'avatar di thitan
    Registrato dal
    Feb 2001
    Messaggi
    716
    guarda non saprei, ci ho dato un'occhiata veloce ma ora non ho molto tempo..prova a sostituire nel file upload.php la tua riga 47:
    $path="/web/htdocs/www.verybear.com/home/verybear/users/".$user."/";
    con
    $path="users/".$user."/";
    e la riga 51
    if (copy( $UploadedFile, "$path/$UploadedFile_name" )){
    con
    $copy=$path.$UploadedFile;
    if (copy( $UploadedFile, $copy )){

    poi sinceramente non capisco come fai a prendere il file senza usare
    $file_temp=$_FILES['UploadedFile']['tmp_name'];
    $file_name=$_FILES['UploadedFile']['name'];

    www.inter-rail.it
    travellers, not tourist
    Is cuma cá mhinice a théann tú ar strae; is é is tábhachtaí gurb áil leat do bhealach a aimsiú arís.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.