[PHP] Upload stesso file

Discussione in 'PHP' iniziata da solari77, 24 Giugno 2019.

  1. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao a tutti , ho un form con type=”file” che mi permette di caricare un file presente sul mio Pc.
    Ora i invece si presenta la necessità di caricare sempre lo stesso file, quindi vorrei omettere il passaggio di scegliere il file e caricarlo, e quindi prelevare sempre lo stesso file che si trova in una specifica cartella sul PC.
    Tutto questo dovrebbe avvenire quando apro una specifica pagina PHP.
    Posso fare in qualche modo?
    Grazie
     
    Ultima modifica: 24 Giugno 2019
  2. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    elimina il form per la scelta del file e passa direttamente allo script il path completo di ciò che deve essere caricato.
     
  3. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao,grazie per la cortese risposta.
    Forse non ho capito.Eliminando completamente il form per la scelta del file poi come faccio ad importare?
    Nel form tramite il submit viene caricato il file.Eliminandolo come faccio a caricarlo ?
    Io ho questa situazione :

    Codice:
    <form class="form-horizontal" action="" method="post"
                    name="frmCSVImport" id="frmCSVImport" enctype="multipart/form-data">
                    <div class="input-row">
                        <label class="col-md-4 control-label">Choose CSV
                            File</label> <input type="file" name="file"
                            id="file" accept=".csv">
                        <button type="submit" id="submit" name="import"
                            class="btn-submit">Import</button>
                        <br />
    </div>
     </form>
    
    if (isset($_POST["import"]))
     {  
        $fileName = $_FILES["file"]["tmp_name"];
        echo $fileName;
            if ($_FILES["file"]["size"] > 0)
    {      
            $file = fopen($fileName, "r");
            $sql = "TRUNCATE TABLE dossier";
            $result_sql = $mysqli->query($sql);
            while (($column = fgetcsv($file, 10000, ",")) !== FALSE)
     {
                $sqlInsert = "INSERT……………….
    }
                  }
    }
    
     
  4. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    ciao
    ero io che nn avevo capito che volevi caricare il file da locale a remoto e poi fare il parsing..
    cmq provo così per il caricamento del file:

    PHP:
    function locale2romoto($path_locale$path_to_save){
            
    $ch curl_init ($path_locale);
            
    curl_setopt($chCURLOPT_HEADER0);
            
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
            
    curl_setopt($chCURLOPT_BINARYTRANSFER,1);
            
    $raw=curl_exec($ch);
            
    curl_close ($ch);
            if(
    file_exists($path_to_save)){
                
    unlink($path_to_save);
            }
            
    $fp fopen($path_to_save,'x');
            
    fwrite($fp$raw);
            
    fclose($fp);
        }
    locale2romoto("file:///percorso/delfile/da/caricare.csv","file.csv"// passa i valori corretti alla funzione
    si presuppone che il cUrl si abilitato e la cartella di destinazione scrivibile. Una volta caricato il file per l'elaborazione e scrittura nel db utilizzi la porzione di codice che usi attualmente.

    P.S. il percorso del file sorgente deve essere assoluto, la forma che ho scritto nel file funziona su linux, su win probabilmente devi modificare in file:// o C://
     
  5. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Cioa, io stò operando su Windows.
    Ho provato sia con file:// o C:// in entrambi i casi mi genera il file .csv sul server, ma il file
    è sempre vuoto
     
  6. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    prova con file:///C:/percorso/file
     
  7. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    ho provato, sempre un file .csv vuoto
     
  8. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    se il cdv è vuoto è perchè il file non viene trovato/letto ....
    prova a mettere il file direttamente in C e vedere se da li riesci a leggerlo (per escludere problemi relativi a path di sottocartelle).
     
  9. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao ho messo il file csv su C e poi questo codice "file:///C:/file.csv" .
    Però sul server continua a caricare ogni volta un csv vuoto.
    Premetto che ogni volta che riprovo vado a cancellare il file csv sul server, anzi riguardo a questo, se il problema verrà risolto volevo anche chiedere se è possibile ad ogni chiamata, cancellare o sovrascrivere questo file, ma questo è un problema successivo.Anzi magari questo lo fà già ma io non me ne stò accorgendo perchè cancello sempre il file prima di riprovare ?
     
  10. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    il file viene sovrascritto
    Codice:
    C:\file.csv
     
  11. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao, purtroppo ancora non và, sempre un csv vuoto.
    Una curiosità,nella funzione che hai creato come secondo parametro indichi "path_to_save". E' una dicitura indicativa , oppure come secondo parametro intendevi il percorso dove salvare ?
    Ciao e grazie per la tua disponibilità
     
  12. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao Mr.x hai altre soluzioni ?
    Grazie
     
  13. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    il secondo argomento della funzione ($path_to_save) lo passi quando richiami la funzione stessa; puoi inserire un nome qualsiasi che verrà poi valorizzato con ciò che passa la chamata alla funzione,

    PHP:
    <?php

    function funzione($a,$b){

    echo 
    "<br>valore del primo argomento: ".$a;
    echo 
    "<br>valore del secondo argomento: ".$b;
    }

    funzione(1,2); //passo i valori 1 e 2

    funzione("patate""lisce"// passo la stringa patate come primo argomento e lisce come secondo argomento

    ?>
    Per il momento non so come aiutrti..
    Una domanda: ma il file lo crei/modifichi in locale? o lo scarichi da qualche servizio online e lo carichi poi sul tuo server?
     
  14. solari77

    solari77 Utente Attivo

    Registrato:
    6 Ottobre 2016
    Messaggi:
    82
    Mi Piace Ricevuti:
    1
    Punteggio:
    8
    Sesso:
    Maschio
    Ciao io scarico un file in formato xlsx da un sito web protetto da user e password. Poi converto il file xlsx in csv e a questo punto vorrei caricarlo sul server.
     
  15. mr.x

    mr.x Utente Attivo

    Registrato:
    9 Aprile 2016
    Messaggi:
    207
    Mi Piace Ricevuti:
    22
    Punteggio:
    28
    te lo chiedevo perchè nel caso potevi anche scaricarlo direttamente sul tuo server (senza il passaggio in locale).
    Però vedendo i passaggi che che operi forse ti risulterebbe più complicato.
     
Sto caricando...

Condividi questa Pagina