Visualizzazione risultati 1 fino 6 di 6

Discussione: Problema sito di uploading.

  1. #1
    frost non è connesso Neofita
    Data registrazione
    01-07-2012
    Messaggi
    4

    Angry Problema sito di uploading.

    Come da titolo, ho un problema con un mio sito di uploading. Premetto che una volta mi funzionava, poi ad un certo punto, boh, niente. Allora... io, come già detto, ho un sito di uploading, che però non mi fa uploadare. Secondo me è colpa di una cartella non scrivibile, anche perché una volta funzionava. Vi posto lo script, magari potete trovarmi la soluzione :)

    Codice PHP:
    <?php
    do {
    if (
    is_uploaded_file($_FILES['file']['tmp_name'])) {
    if (
    file_exists('files/'. rand(300,90000) .$_FILES['file']['name'])) {
    $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
    break;
    }
    if (!
    move_uploaded_file($_FILES['file']['tmp_name'], 'files/'. rand(300,90000) .$_FILES['file']['name'])) {
    $msg = "<p>Errore nel caricamento dell'immagine.</p>";
    break;
    }
    }
    } while (
    false);
    echo
    $msg;
    ?>
    Grazie!

    Tanto per aggiungere una cosetta: la cartella si chiama "files" (Senza virgolette), quindi files/ o /files ?
    Ultima modifica di karl94 : 02-07-2012 alle ore 20.15.42 Motivo: Sbagliato script. Non so perché ci siano degli asterischi nel codice O_o

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Non fare up, usa il tasto edit.

    Lo script lo hai fatto te ho preso da internet, non capisco il senso del do/while visto che il while è false, cmq io non ho notato nulla di strano nello script, c'è per caso la possibilità che hai modificato il forum di upload, ad esempio l'attributo enctype? utile a fare l'upload?

    files/ e /files sono due percorsi relativi uguali.

    P.S.: Da quello che ho capito devi uploadare un'immagine, ma cosi, come lo script, di permette di uppare qualsiasi tipo di file, dovresti controllare se il tipo di file è un'immagine, prima di caricarla nella directory.
    Ultima modifica di sevenjeak : 02-07-2012 alle ore 20.03.23

    Sevenjeak
    Software developer and much more

  3. #3
    frost non è connesso Neofita
    Data registrazione
    01-07-2012
    Messaggi
    4

    Predefinito

    Allooooora, prima di tutto mi scuso per l'inconveniente del messaggio consecutivo.
    Poi.. lo script sì, è copiato, ma volevo solo vedere se avrebbe funzionato, perché poi lo avrei modificato a mio piacimento. Non sono ancora familiare col PHP. Comunque ora controllo, non ci avevo pensato! :P

    Non vedo ci sia nulla di sbagliato. Almeno ho sempre usato questo.

    Codice HTML:
    <form action="upload.php" method="post" enctype="multipart/form-data">
    Il resto del codice...
    </form>
    Ultima modifica di frost : 02-07-2012 alle ore 20.47.16 Motivo: Ho controllato.

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Infatti il form va bene.

    Io proverei, e non so se sia la stessa cosa, a modificare il codice cosi:

    Codice PHP:
    if (is_uploaded_file($_FILES['file']['tmp_name'])) {
    $rand = rand(300,90000);

    if (
    file_exists('files/'. $rand .$_FILES['file']['name'])) {
    $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>";
    }else {
    if (!
    move_uploaded_file($_FILES['file']['tmp_name'], 'files/'. $rand .$_FILES['file']['name'])) {
    $msg = "<p>Errore nel caricamento dell'immagine.</p>";
    }
    }
    }

    echo
    $msg;
    Ho levato il do/while e i break all'interno del codice, sostituito con un else, e ho notato solo ora che il numero random, contenente sia nella seconda if che nella tersa, veniva rigenerato, quindi non credo abbia senso controllare l'esistenza del file con un nome, per poi uppare un file con un altro nome ( contenente un'altro numero random ), non so se mi spiego.

    Prova con questo codice, in alternativa dai un'occhiata ad altri tutorial on-line, ad esempio questo:

    http://www.w3schools.com/php/php_file_upload.asp

    Soprattutto io ti consiglierei di studiarti il php e i codice che utilizzi.
    Ultima modifica di sevenjeak : 03-07-2012 alle ore 08.16.48

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio

    files/ e /files sono due percorsi relativi uguali.
    Per nulla, non sono due percorsi uguali.
    Il primo (files/) indica la cartella FILES all'interno della cartella corrente, mentre il secondo (/files) i dica la risorsa (che può essere anche un file così come scritto) FILES nella root dello spazio web.

  6. #6
    frost non è connesso Neofita
    Data registrazione
    01-07-2012
    Messaggi
    4

    Predefinito

    Grazie, adesso provo. Infatti io PHP lo sto studiando, ma il mio modo non è quello di leggeremi una guida. Io vado subito al dunque.

    Ancora niente. Adesso credo proprio sia un problema della cartella...

    Ho capito il problema. Ho provato lo script sul sito w3schools, e effettivamente vedo che quando uppo il file, la dimensione è di 0KB, anche se invece .... beh, non è proprio così. E ovviamente il motivo per cui nella cartella non vedo il file, è perché è "vuoto".
    Ultima modifica di frost : 03-07-2012 alle ore 14.53.43 Motivo: Ho capito!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •