Visualizzazione dei risultati da 1 a 8 su 8

Discussione: upload file

  1. #1

    upload file

    Salve a tutti..avevo bisogno di un aiuto...
    sto progettando un sito in cui vorrei usare questo script per l'upload di immagini.
    questo è il form del file upload.php:
    codice:
    <form enctype="multipart/form-data" action="mem_upload.php" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="1024000" />
    <input name="file_name" type="file" />
    <input type="submit" value="carica" />
    </form>
    questo invece è lo script php nel file mem_upload.php
    codice:
    <?php
    	if($_FILES['file_name']['error'] != UPLOAD_ERR_OK)
    	{
    	print("C'è stato un errore nel trasferimento del file
    \n");
    	}
    	else 
    	{
    	copy($_FILES['file_name'] ['tmp_name'], ".\\".$_FILES['file_name'] ['name']);
    	unlink($_FILES['file_name'] ['tmp_name']);
    	print("Nome del file temporaneo:".$_FILES['file_name'] ['tmp_name']."
    \n");
    	print("Nome del file trasferito:".$_FILES['file_name'] ['name']."
    \n");
    	print("dimensione:".$_FILES['file_size'] ['size']."
    \n");
    	print("tipo:".$_FILES['file_name'] ['type']."
    \n");
    	print("<hr />\n");
    	}
    ?>
    Ho provato questo semplice codice sul server dove ho il mio sito, come si può notare il file viene memorizzato nella ".\\" (correggetemi se sbaglio)
    se io voglio memorizzare il file nella cartella /prova/image come devo fare?
    i file vengono eseguiti perfettamente, ma non mi memorizza il file...dove sbaglio?

    p.s: il mio sito è su di un dominio di secondo livello...potrebbe essere un problema?
    Grazie...
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  2. #2
    nessuno mi può aiutare???
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  3. #3
    Ti manda errore lo script? Se sì, quale?
    Sei sicuro che tu possa salvare nella cartella ".\\"?
    Devi vedere se hai i permessi di scrittura nella cartella in cui vuoi salvare file di qualsiasi tipo.
    Questo dipende anche dall'hosting.
    Se hai un server Linux puoi creare una cartella (che ne so) "/immagini", impostare i permessi di scrittura con diversi metodi (anche con il client FTP) e lì salvare solo le immagini che vai ad uploadare.
    Con altri hoster (soprattutto su piattaforma windows) devi vedere su quali cartelle hai detti permessi.... trovi tutte le info nella mail di conferma della sottoscrizione, di solito.

    Piccola annotazione, ricorda che per visualizzare un file immagine, nel TAG src va messo il percorso relativo per raggiungere detto file:
    codice:
             [img]prova/image/file.jpg[/img]
    Mentre per salvare un file in remoto, devi usare il percorso assoluto fisico. Naturalmente con i dati che ti fornisce l'host.

    Ultima annotazione.
    L'array $_FILES già contine informazioni sul peso del file in upload, per cui non è necessario il campo hidden con il MAX_FILE_SIZE, che puoi controllare successivamente e direttamente in php.

    Comunque, ti posto un po' di codice per rispondere al tuo quesito circa la sintassi.
    Codice PHP:


    <?php
    // file  mem_upload.php

    $cartella_di_upload "D:/inetpubs/numesito/public/images"
    // esempio valido per Aruba - ma è per farti capire
    // cosa intendo per percorso assoluto fisico

    $nome_tmp $_FILES['file_name']['tmp_name'];
    $nome_file $_FILES['file_name']['name'];
    $peso $_FILES['file_name']['size'];
    $tipo $_FILES['file_name']['type'];

    if(
    $_FILES['file_name']['error'] != UPLOAD_ERR_OK)
        {
        print(
    "C'è stato un errore nel trasferimento del file
    \n"
    );
        }
        else 
        {
        
    copy($nome_tmp"$cartella_di_upload/$nome_file");
               
    /* credo che questa operazione non sia necessaria
        unlink($_FILES['file_name']['tmp_name']); */
        
    print("Nome del file temporaneo:  $nome_tmp
    \n"
    );
        print(
    "Nome del file trasferito: $nome_file
    \n"
    );
        print(
    "dimensione: $peso
    \n"
    );
        print(
    "tipo: $tipo 
    \n"
    );
        print(
    "<hr />\n");
        }
    ?>
    Spero di essere stato chiaro, e di non avere commesso errori nel codice, visto che non l'ho provato.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    ciao grazie per avermi risposto...
    il mio codice funzione in locale, oltre che nel mio sito (che è di secondo livello) ho provato su di un'altro sito (ma di primo livello) e non funziona uguale!
    L'host però è aruba...
    tu nell'esempio hai inserito D:\....
    se carico i file nell'host che devo mettere?
    Sugnu Sicilianu e mi ni vantu, picchì la terra mia è china china d'incantu...u suli e li salini, pisci n'do sbarcaturi, su tutti cosi ca mi fannu strinciri lu cori...

  5. #5
    Nella email che aruba ti ha mandato dopo la sottoscrizione, hai sicuramente segnato il percorso assoluto delle cartelle del tuo sito.
    Se non lo trovi nella mail, cerca nel sito di Aruba.
    Se non ricordo male, ci trovi un esempio proprio di uno script php di upload dei file.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    L'host però è aruba...
    Su aruba ho avuto lo stesso problema. Anche se lo script è perfetto hai la possibilità di effettuare queste operazioni solo nella crtella public o in sue sottocartelle.

    ad esempio in questo caso ho creato una sottocartella immagini nella cartella public.
    Naturalmente al posto di NOMESITO c'è il nome del mio sito senza www e senza .it

    Codice PHP:
    if(isset($_POST["inviaFotoPersonale"]))
    {
        
    $path="d:/inetpub/webs/NOMESITO/public/immagini";
        
    $erroreCaricamento false;
        
        
    $filename $HTTP_POST_FILES['fotoPersonale']['tmp_name'];
        if(
    is_uploaded_file($filename))
        {    
            if(
    move_uploaded_file($filename$path."/".$_SESSION["_id"].".jpg"))
                echo(
    "<script language='JavaScript'>alert(\"L'immagine è stata caricata. Aggiorna la pagina per visualizzarla correttamente.\")</script>");
            else
                
    $erroreCaricamento true;
        }
        else
            
    $erroreCaricamento true;
    }

    ?> 

  7. #7
    La cartella /public è l'unica con i permessi di scrittura solo per i server Windows, mentre per quelli Linux si possono creare cartelle e assegnare i permessi sia via PHP sia via Client FTP.

    Io però parlavo di percorso assoluto.
    Generalmente è del tipo D:/inetpub/nomesito/nomecartella, ma anche qui la sintassi (o meglio il numero e l'orientamente degli slash) dipende dal tipo di server.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Onestamente non so su server Linux perchè ho avuto modo solamente di lavorare su server Windows.
    Su windows il percorso assoluto è questo:

    Codice PHP:
    $path="d:/inetpub/webs/NOMESITO/public/immagini"
    Lo script che ho riportato è funzionante... per cui è esatta anche la sequenza di slash

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.