Visualizzazione dei risultati da 1 a 7 su 7

Discussione: cartelle temporanee

  1. #1

    cartelle temporanee

    Ciao a tutti. Recentemente ho fatto una prova di upload di un' immagine con XAMPP. Eseguendo il seguente codice:

    print_r($_FILES['uploadfile']['tmp_name']);
    mi da a schermo:
    C:\xampp\tmp\php7F60.tmp




    Mosso dalla curiosità, sono andato nel percorso indicato ma il file non compare, nemmeno nascosto...
    C'è un motivo in tutto questo?

    Altra cosa : eseguendo invece il codice:
    echo sys_get_temp_dir();


    mi da un altro percorso:
    C:\blablabla\AppData\Local\Temp
    Che è un percorso diverso da quello di prima . In entrambi i casi quel file temporaneo non risulta da nessuna parte.
    Qualcuno potrebbe spiegarmi il meccanismo di tutto ciò? Grazie a tutti

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,918
    Com'è il codice con cui fai l'upload del file?
    Generalmente l'immagine si salva nella cartella desiderata con move_uploaded_file(), che toglie il file dalla cartella temporanea, quindi in temp alla fine del processo non ci sarà l'immagine.

  3. #3
    Allora posto qui:

    Pagina del form:
    <formaction="controlla_immagine.php"method="POST"enctype="multipart/form-data">

    <table>

    //omissis....

    <tr>
    <td>Upload Image: </td><td><inputtype="file"name="uploadfile"></td>
    </tr>
    <tr>

    <tdcolspan ="2">

    <inputtype="submit"name="submit"value="Upload"></td>

    </tr>
    </table>
    </form>


    ho messo in evidenza solo la parte più importante del form.
    Lato server:
    <?php

    // indico il percorso dove corrisponde la cartella images in uso

    $dir = 'C:\xampp\htdocs\images';


    // Gestisce l'immagine caricata

    if ($_POST['submit'] == 'Upload'){



    // controllo errori in fase di upload

    if ($_FILES['uploadfile']['error'] != UPLOAD_ERR_OK) { // omissis gestione errori}


    }//eseguo la stampa del percorso del file temporaneo
    print_r($_FILES['uploadfile']['tmp_name']);
    echo'<br>';

    list($width,$height, $type, $attr) = getimagesize($_FILES['uploadfile']['tmp_name']);




    if ($type == IMAGETYPE_JPEG){

    $immagine = imagecreatefromjpeg($_FILES['uploadfile']['tmp_name']);

    imagejpeg($immagine,$dir.'/nomefile.jpg',100);
    }


    L'ultima parte che crea effettivamente l'immagine l'ho messa anche tra /* e */ ma nella cartella comunque non compare nulla... però cosa strana : vado un livello su rispetto alla cartella tmp e noto che cmq mi da una data dell'ultima modifica che coincide col momento in cui ho effettuato l'upload... Strano. Era giusto per rendermi conto di chi fa cose e dove

    P.S.: doverosi ringraziamenti per l'interessamento
    Ultima modifica di diegodavide; 14-05-2020 a 23:05

  4. #4
    La cartella di destinazione ha i permessi di scrittura?

  5. #5
    Quote Originariamente inviata da SoloWiFi Visualizza il messaggio
    La cartella di destinazione ha i permessi di scrittura?
    Si ha i permessi, altrimenti mi avrebbe dato errore durante l'upload.

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,555
    Che io sappia, al termine dello script il file temporaneo viene cancellato. Probabilmente non fai in tempo a vederlo.
    Per curiosità, potresti mettere un sleep di 30 secondi in mezzo al tuo script e vedere se nella cartella temporanea "vedi" il file

  7. #7
    Quote Originariamente inviata da boots Visualizza il messaggio
    Che io sappia, al termine dello script il file temporaneo viene cancellato. Probabilmente non fai in tempo a vederlo.
    Per curiosità, potresti mettere un sleep di 30 secondi in mezzo al tuo script e vedere se nella cartella temporanea "vedi" il file
    Ti ringrazio dell'ottimo suggerimento. Ho messo il comando sleep (che non conoscevo) in un punto qualsiasi del codice (il file comunque non verrà trasmesso al browser). Fin tanto che la pagina di risposta .php non viene mostrata a video, il file temporaneo permane nella cartella tmp del server. Poi viene rimossa, probabilmente perchè deve essere ricaricata in memoria centrale per eventuali modifiche. Grazie

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 © 2020 vBulletin Solutions, Inc. All rights reserved.