Visualizzazione risultati 1 fino 4 di 4

Discussione: aiuto per configurare questo script in php x uplodare fino a 7 file

  1. #1
    Guest

    Predefinito aiuto per configurare questo script in php x uplodare fino a 7 file

    mi da errore file non caricato la dir di destinazione è /upload il mess. di errore mi viene inviato lo script completo lo trovate su http://javascript.html.it/

    Codice PHP:
    <?php


    #########################################################################
    ##### #####
    ## FilePusher versione 0.1; creato da KLaN ([url]http://luriodmp3.cjb.net[/url]) ##
    #### questa libreria è rilasciata sotto licensa GNU/GPL ####
    ##### #####
    #########################################################################


    class filePush
    {


    ########################### INIZIO PARTE CONFIGURABILE ###############################
    #
    #
    ################## INIZIO PARTE RICHIESTA
    #
    #
    var $upDIR = "/www.overfourteen.altervista.org/upload"; //$upDIR deve corrispondere all path assoluto
    //della directory dove intendi caricare i file


    var $eMail = "overfourteen@gmail.com"; //Il tuo indirizzo E-Mail; FilePusher lo userà per
    //notificarti errori e caricamenti avvenuti
    //(Attenzione: FilePusher non notifica tentativi di
    //hacking o file non validi)
    #
    #
    ################## FINE PARTE RICHIESTA
    #
    #
    #
    var $maxFileSize = ""; //questa opzione ti permette di limitare la dimensione di ogni
    //singolo file; la dimensione va espressa in bytes


    var $disabled_Exts = ".php,.php3,.php4,.htaccess"; //questa opzione ti permette di
    //impedire che vengano caricati file con
    //determinate estensioni; le estensioni
    //vanno separate con una virgola

    var $select_uploads = true; //questa opzione ,quando impostata su true, permette
    //all'utente di scegliere quanti file caricare


    var $max_uploads = 7; //il numero massimo di upload che possono essere effettuati


    var $default_uploads = 1; //questa opzione corrisponde al numero di file-field che vengono
    //mostrati di default


    var $compress = ""; //questa opzione ti permette di comprimere i fie una volta caricati
    //usando GZip o Bzip; il valore può essere "gz" oppure "bz"; per
    //utilizzare questa opzione hai bisogno dei permessi di scrittura
    //(chmod 777) e delle librerie GZIP o BZIP2; sconsiglio di usarla su
    //piattaforme Windows perchè Windows è una ***** (potrebbe crasharsi o
    //corrompere il file)

    #
    #
    #
    ########################### FINE PARTE CONFIGURABILE #################################



    var $target;

    var
    $logs = array(); //in questo array verrano inserite informazioni sui file caricati in
    //questo modo (nome del file, stato [caricato o non caricato; array
    //$bools], messaggio [array $responses])

    var $bools = array(
    0 => "caricato",
    1 => "non caricato"
    );

    var
    $responses = array();

    var
    $compressions = array( //Metodi compressione supportati
    "gz" => "gzencode",
    "bz" => "bzcompress"
    );


    # Questa funzione inserisce gli elementi nell'array $resonses in base alla configurazione
    function makeResponses(){
    $this->responses[0] = "ok!";
    $this->responses[1] = "file non valido";
    $this->responses[2] = "dimensione del file nulla";
    $this->responses[3] = "supera la dimensione massima consentita ($this->maxFileSize bytes)";
    $this->responses[4] = "formato del file non valido (i file con estensione $this->disabled_Exts non sono accettati)";
    $this->responses[5] = "errore durante il caricamento";
    }


    # Questa funzione verifica la validità del file; ritorna vero o falso
    function checkFileType($file, $fileName, $fileSize){
    $ok = true;
    if(!
    is_uploaded_file($file)){ //controlla che il file sia stato
    array_push($this->logs, $this->bools[1]); //correttamente caricato via
    array_push($this->logs, $this->responses[1]); //HTTP POST
    $ok = false;
    }
    elseif(
    $fileSize <= 0){ //controlla che il file non abbia
    array_push($this->logs, $this->bools[1]); //dimensione nulla
    array_push($this->logs, $this->responses[2]);
    $ok = false;
    }
    elseif(
    $this->maxFileSize && ($fileSize > $this->maxFileSize)){ //se è impostata
    array_push($this->logs, $this->bools[1]); //una dimensione
    array_push($this->logs, $this->responses[3]); //massima, controlla
    $ok = false; //che il file non la superi
    }
    elseif(
    $this->disabled_Exts){ //verifica se il formato del
    $noEXTs = explode(",", $this->disabled_Exts); //file è tra quelli non
    foreach($noEXTs as $noExt){ //accettati
    trim($noExt);
    (
    $noExt == "") && next();
    if(
    stristr(substr($fileName, strrpos($fileName, ".")), $noExt)){
    array_push($this->logs, $this->bools[1]);
    array_push($this->logs, $this->responses[4]);
    $ok = false;
    }
    }
    }
    return(
    $ok);
    }



    # Questa funzione restituisce la destinazione del file
    function checkTarget($fileName){
    $fileName = str_replace(" ", "_", $fileName); //rimpiazza gli spazi vuoti con un _
    if($this->compress && $this->checkZLIB()){ //se abilitata l'opzione di
    $fileName .= ".".$this->compress; //compressione, aggiunge l'estensione del
    } //tipo di compressione
    $this->target = $this->upDIR."/".$fileName;
    $rename = 1;
    while(
    file_exists($this->target)){ //evita la sovrascrittura
    $theExt = substr($fileName, strrpos($fileName, ".")); //dei file aggiungendo .1,
    $theName = substr($fileName, 0, strrpos($fileName, ".")); //.2 .3 e così via
    if(preg_match("/.\.[0-9]/",$theName)){
    $theName = substr($theName, 0, strrpos($theName, "."));
    }
    $this->target = $this->upDIR."/".$theName.".".$rename.$theExt;
    $rename++;
    }
    }



    # Questa funzione verifica che ci sia la libreria per il tipo di compressione scelto
    function checkZLIB(){
    $function = $this->compressions[$this->compress];
    if(@
    function_exists($function)){
    return
    true;
    } else{
    return
    false;
    }
    }



    # Questa funzione comprime i file caricati in base al tipo di compressione scelto,
    # ritorna true se è riuscito a comprimerlo.
    function useZLIB($tmp){
    $fp = fopen($tmp, "rb");
    $contents = fread($fp, filesize($tmp));
    fclose($fp);
    $zfp = fopen($this->target, "w");
    eval(
    'fputs($zfp, '.$this->compressions[$this->compress].'($contents));');
    fclose($zfp);
    unlink($tmp);
    if(
    file_exists($this->target) && filesize($this->target) > 0){
    return
    true;
    } else{
    return
    false;
    }
    }



    # Qui inizia la storia
    function initFilePush($file, $fileName, $fileSize){
    $this->makeResponses(); //completa l'array $responses
    array_push($this->logs, $fileName); //inserisce il nome file nell'array $logs
    $control = $this->checkFileType($file, $fileName, $fileSize); //controlla il file
    if($control){ //se il file non gli va bene, chiude qui

    $this->checkTarget($fileName); //crea la destinazione per il file

    if($this->compress && $this->checkZLIB()){ //se è impostata l'opzione di
    $tmp = $this->target.".tmp"; //compressione, muove il file in uno
    $move = @move_uploaded_file($file, $tmp); //temporaneo e lo comprime;
    $move && ($push = @$this->useZLIB($tmp)); //altrimenti
    } else{ //muove il file caricato e chiude qui
    $push = @move_uploaded_file($file, $this->target); // <------------'
    }
    $adesso = '[ In data '.date("d-m-Y").' alle '.date("H:i").' ]';

    if(
    $push){ //se l'operazione è andata a buon fine,
    array_push($this->logs, $this->bools[0]); //chiude l'array $logs e notifica
    array_push($this->logs, $this->responses[0]); //l'upload via mail
    @mail($this->eMail, "FilePusher: notifica upload", "E' stato caricato un nuovo file.\n\n\tNome originale: ".$fileName."\n\tDestinazione: ".$this->target."\n\n".$adesso);
    } else{
    array_push($this->logs, $this->bools[1]); //se è andata male notifica
    array_push($this->logs, $this->responses[5]); //l'errore via mail
    @mail($this->eMail, "FilePusher: notifica errore", "E' avvenuto un errore durante il caricamento di un file.\n\n\tNome del file: ".$fileName."\n\n".$adesso);
    }
    }
    }


    }

    ?>
    usa gli appositi tag del codice per migliorare la visualizzazione


    EDIT:
    questa è la riga che non va :
    var $upDIR = "/www.overfourteen.altervista.org/upload"; //$upDIR deve corrispondere all path assoluto
    //della directory dove intendi caricare i file

    questa è l'originale:
    var $upDIR = "/home/io/www/upload"; //$upDIR deve corrispondere all path assoluto
    //della directory dove intendi caricare i file
    Ultima modifica di seneca : 14-10-2007 alle ore 12.30.40

  2. #2
    Guest

    Predefinito

    non penso che il path assoluto sia quello, piuttosto "/membri/overfourteen/upload" o qualcosa del genere; puoi mettere il link preciso da dove lo hai preso questo codice?

  3. #3
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Basta leggere http://it.altervista.org/faq_tecniche.php per sapere il path assoluto.
    Ciao!


    -- Aut Roma Aut Nihil!

  4. #4
    Guest

    Predefinito ovefourteen

    grazie tecnoman il link è http://javascript.html.it/ ho provato e funziona (FilePusher0.1)
    Ultima modifica di overfourteen : 14-10-2007 alle ore 14.11.25

Regole di scrittura

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