Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509

    [php]spostare immagini gia uploadate

    mi son perso o meglio non mi sposta l'immagine e si che dovrebbe essere tutto giusto

    ho un sito dove all'interno ho 3 cartelle.
    /funzioni
    /tempimg
    /immagini

    [php]
    <?php
    session_start();
    $ultimo="242";
    $doc_directory = "/var/www/miosito/";
    $provenienza="../tempimg/";
    $destinazione=$doc_directory."immagini/";
    //recupera il SID per recuperare le foto in questione
    $filename=$_SESSION['sid'];
    for ($x="0";$x<="6";$x++){
    if (is_file($provenienza.$filename."_0".$x.".jpg"))
    {
    if(move_uploaded_file($provenienza.$filename."_0". $x.".jpg", $_SERVER [ "DOCUMENT_ROOT" ] ."/immagini/".$ultimo."_0".$x.".jpg")){
    echo $destinazione.$ultimo."_0".$x.".jpg";}else{echo "immagine non spostata".$_SERVER [ "DOCUMENT_ROOT" ]."/immagini/".$ultimo."_0".$x.".jpg
    ";}
    }else{echo "il file non esiste: ".$provenienza.$filename."_0".$x.".jpg
    ";
    }
    }
    ?>

    in pratica ho un form che mi fa l'upload di immagini che venogno conservate nella cartella temporanea. alla fine se tutti i processi vanno a buon fine si arriva a questo spezzone di script che "dovrebbe" leggere l'id inserito ($ultimo, per provare l'ho inserito fisso)
    a quel punto fa un ciclo(dall'immagine nometemporaneo_00.jpg a nometemporaneo_06.jpg)
    per spostare e rinominare le immagini nella cartella /immagini.

    mi son messo degli echo per vedere cosa fa e cosa non fa e cosa no.
    mi trova l'immagine originale (quella nella cartella temporanea) ma non me la sposta...ho pensato fosse un problema di impostare l'url corretto di destinazione ma non capisco..

    potreste darmi un consiglio? non posso usare move_uploaded_file()
    io le immagini dovrei spostarle e rinominarle

  2. #2
    ma quando fai un upload, non la mette nella cartella temporanea cche crei tu, ma in quella del server.
    è da li che devi spostarla con move_uploaded_file().

    mi sembra...
    Ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    colpa mia non ho detto tutto.

    il tutto parte da un sito gratutio per inviare le foto del viaggio che si è fatto e come ci si è trovati, una specie di informativa sui posti cosi la prossima volta te ne ricordi ed eviti di andarci :P
    ho un form iniziale con un upload di immagini
    per poter realizzare un anteprima delle immagini ed evitare problemi coninserimenti multipli faccio fare l'upload delle immagini.
    dalla cartella temporanea le metto in una cartella personale /tempimg e come nome gli imposto quello del SID(piu che altro perche nella mia ingoranza non so ancora come sfruttare a dovere la cartella..diciamo che non conosco molto bene il processo)
    in questo caso potrei avere 440dsc18s2cx54s3sd54cx5sd9_01.jpg
    fin tanto che explorer non viene chiuso le sessioni rimangono(almeno in teoria) e quindi in ogni momento so come si chiama il file.
    quindi mi appare un riepilogo dei dati inseriti su un'altra schermata e posso vedere l'anteprima delle immagini.
    se confermo i dati vengono inseriti nel db e a quel punto il file
    /tempimg/440dsc18s2cx54s3sd54cx5sd9_01.jpg
    dovrebbe essere spostato/rinominato
    /immagini/258_01.jpg
    dove 258 è un numero ipotetico assegnato ai dati inseriti (lo decide il server)

    attualmente tutto funziona ma non riesco a far spostare/rinominare il file...mi riconosce che esiste ma non me lo sposta.

  4. #4
    allora, prima copialo con copy, poi se copiato con successo, lo cancelli con unlink dalla vecchia posizione.
    Ciao!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    ho gia provato a sostituire move_uploaded_file(); con copy();

    ipotizzando un
    var/www/miosito/tempimg/nomefiletep.jpg

    e volessi spostarlo dentro

    var/www/miosito/immagini/nomevero.jpg

    come dovrei fare a questo punto?

    io avevo scritto
    Codice PHP:

    copy
    ("../tempimg/".$filename."_0".$x.".jpg"$_SERVER "DOCUMENT_ROOT" ] ."/immagini/".$ultimo."_0".$x.".jpg) 
    tenendo presente che:
    questo file è all'interno della cartella "funzioni" e che vi accedo tramite un invio di form
    Codice PHP:
    if (isset($_POST['Submit'])){
        
    header("Location:funzioni/carica.php");

    ho pensato che il problema derivasse per l'appunto dalla destinazione, ma è anche vero che nello stesso modo io carico le immagini temporanee...unica differenza che l'origine è
    Codice PHP:
    $copy_path "/var/www/miosito/tempimg/".$idsessione."_01.jpg";
    move_uploaded_file($_FILES['users_file1']['tmp_name'], $copy_path
    e per l'appunto l'idsessione me lo genero prima...
    controllato all'interno della cartella tempimg e viene caricata senza problemi...sono un po perplesso a riguardo

  6. #6
    prima di procedere alla copia, fai un echo dei due percorsi, iniziale e finale.

    e controlla se sono corretti.
    Ciao!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    l'ho fatto e se lo faccio mi stampo a video questo

    copia da:
    /var/www/miosito/tempimg/62224db0906c7a076b48b3c691d328c9_01.jpg
    a
    /var/www/miosito/immagini/123_01.jpg

  8. #8
    Originariamente inviato da nexus
    l'ho fatto e se lo faccio mi stampo a video questo

    copia da:
    /var/www/miosito/tempimg/62224db0906c7a076b48b3c691d328c9_01.jpg
    a
    /var/www/miosito/immagini/123_01.jpg
    ecco, se tu inserisci nel browser il primo percorso, l'immagine esiste?
    Usa ovviamente il percorso web http://www.sito.ext/tempimg ecc....
    Ciao!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    509
    allora per farla vedere(riconoscere con is_file() )
    il percorso corretto è quello di prima:
    Codice PHP:
    copy("../tempimg/".$filename."_0".$x.".jpg"$_SERVER "DOCUMENT_ROOT" ] ."/immagini/".$ultimo."_0".$x.".jpg) 
    che con echo risulterebbe copia da:
    ../tempimg/62224db0906c7a076b48b3c691d328c9_01.jpg
    a
    /var/www/miosito/immagini/123_01.jpg


    vedendo questo ho modificato a suo tempo anche l'url di destinazione in modo tale che il tutto fosse cosi:
    copia da:
    ../tempimg/62224db0906c7a076b48b3c691d328c9_01.jpg
    a
    ../immagini/123_01.jpg


    ma nemmeno cosi funziona. i permessi ci sono...anche perchè inizialmente l'upload lo facevo direttamente nella cartella immagini.

    sinceramente mi sembra assurdo che per spostare un file da una cartella ad un altra in php debba usare un url assoluto(www.miosito.it/immaigni/123_01.jpg)...quindi non ho nemmeno tentato questa soluzione.

  10. #10
    non per spostarla un url assoluto, ma solo per verificare se esiste l'immagine.

    prova ad usare la variabile $_SERVER['DOCUMENT_ROOT']...
    Ciao!

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.