Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    file upload che non funziona

    ciao a tutti, lo script e' in due pagine, la prima e' il form, la seconda lo script vero e proprio:


    <FORM ENCTYPE='multipart/form-data' ACTION='uplo2.php' METHOD='POST'>
    <INPUT TYPE='hidden' name='MAX_FILE_SIZE' value='5120000'>
    Nome file: <INPUT NAME='UploadedFile' TYPE='file' >
    <INPUT TYPE='submit' VALUE='Invia il file'>

    e la seconda pagina (uplo2.php) (dove ho sforbiciato i vari controlli):

    $UploadedFile_name = $_FILES['UploadedFile']['name'];
    $UploadedFile_size = $_FILES['UploadedFile']['size'];
    $UploadedFile = $_FILES['UploadedFile'];
    $path="/home/admin/labatteria.it/public/file";
    if ( copy ($UploadedFile_name, "$path/$UploadedFile_name" )){
    echo "<H3>ESITO UPLOAD</H3>Upload avvenuto con successo!

    ";
    }else{
    echo "Upload fallito";
    exit;
    }

    Lo script funzionava alla perfezione sul precedente server ma ora non funziona piu' e ottengo quest'errore:

    Warning: copy(nomefilecaricato) [function.copy]: failed to open stream: No such file or directory in /home/admin/labatteria.it/uplo/uplo2.php on line 121
    Upload fallito.

    La linea 121 e' quella del copy.
    Ho ovviamente settato a 777 i permessi sulla cartella file.
    Qualcuno mi sa aiutare?

  2. #2
    Il file caricato sul server non si trova in $_FILES['UploadedFile']['name'] ($UploadedFile_name) ma in $_FILES['UploadedFile']['tmp_name'];

    Al posto di copy è anche consigliato l'utilizzo di move_uploaded_file() per i file caricati via FORM

  3. #3
    GRAZIE VERAMENTE!
    Carica!
    Ma quindi tutti i controlli li devo fare sul nome temporaneo?

  4. #4
    Dipende tutto da che controlli ...

    Ma in generale no, i controlli che fai sono la dimensione, il tipo di file e cose simili, in questi casi usi altri valori di $_FILES che li contengono, il nome temporaneo lo usi solo per copiare il file dove ti serve e dargli il suo nome finale (quello originale o quello che definisci te).

  5. #5
    Certo.

    In realta' faccio molti controlli sul nome:

    /// CONTROLLA SE E' STATA SCELTO UN FILE

    if(!$UploadedFile_name){
    echo "Per favore seleziona un file da caricare!

    ";
    exit;
    }

    /// CONTROLLA SE CONTIENE SPAZI

    if (ereg(" |%20", $UploadedFile_name)){
    echo "Il nome del file contiene spazi.";
    exit;
    }

    /// CONTROLLA SE IL NOME E' TROPPO LUNGO

    if (strlen($UploadedFile_name)>30){
    echo "Il nome del file &eacute troppo lungo (supera i 30 caratteri).";
    exit;
    }

    /// DETERMINA TIPO DI FILE e SE CONSENTITO

    if (eregi("jpg$|jpeg$|jpe$|gif$|png$", $UploadedFile_name)){
    $tipo = "immagine";}
    elseif (eregi("mp3$|mid$|wma$", $UploadedFile_name)){
    $tipo = "audio";}
    elseif (eregi("mpg$|mov$|avi$|wmv$", $UploadedFile_name)){
    $tipo = "video";}
    elseif (eregi("txt$|rtf$|pdf$|doc$", $UploadedFile_name)){
    $tipo = "testo";}
    elseif (eregi("zip$|sit$|sitx$|rar$", $UploadedFile_name)){
    $tipo = "archivio";}
    else {
    echo "Tipo di file non consentito!";
    exit;
    }

    /// CONTROLLA SE FILE ESISTE GIA' NEL DATABASE

    $db = MYSQL_CONNECT('server', 'user', 'psswd');
    mysql_select_db('nome_db', $db);
    $query ="select link from file_uplo where link = '$UploadedFile_name'";
    $esiste=mysql_query($query);

    if (mysql_num_rows($esiste)!=0){
    echo "Esiste gi&agrave un file con lo stesso nome nel database";
    exit;
    }

  6. #6
    per questo tipo di controlli usi il vero nome del file: $_FILES['UploadedFile']['name'];

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