Ricerca…


Parametri

Param / Funzione Descrizione
upload di file nome del campo <input>
$ samplename potrebbe anche essere una stringa generata dinamicamente o il nome del file caricato dall'utente
app_path () è l'helper di Laravel per fornire il percorso assoluto all'applicazione
getCLientOriginalExtension () Laravel wrapper per recuperare l'estensione del file caricato dall'utente come era sul computer dell'utente

Generazione di nomi di file con data e ora per i file caricati dagli utenti.

Di seguito non funzionerà su una macchina Windows

$file = $request->file('file_upload');
$sampleName = 'UserUpload';
$destination = app_path() . '/myStorage/';
$fileName = $sampleName . '-' . date('Y-m-d-H:i:s') . '.' . 
$file->getClientOriginalExtension();
$file->move($destination, $fileName);  

Viene generato un errore come "Impossibile spostare il file in / percorso ..."

Perché? - Funziona perfettamente su un server Ubuntu
Il motivo è che sui colon ':' Windows colon ':' non è permesso in un nome file dove è consentito su linux. Questa è una cosa così piccola che potremmo non notarlo in anticipo e continuare a chiederci perché un codice che gira bene su Ubuntu (Linux) non funziona?
La nostra prima impressione sarebbe quella di controllare i permessi del file e cose del genere, ma potremmo non notare che colon ':' è il colpevole qui.
Quindi, per caricare file su Windows, non utilizzare i colon':' durante la generazione di nomi di file con data e ora , invece di fare qualcosa di simile di seguito:

$filename = $sampleName . '-' . date('Y-m-d-H_i_s') . '.' . $file->getClientOriginalExtension();  //ex output UserUpload-2016-02-18-11_25_43.xlsx
            
                                   OR

$filename = $sampleName . '-' .date('Y-m-d H i s') . '.' . $file->getClientOriginalExtension();  //ex output UserUpload-2016-02-18 11 25 43.xlsx

                                   OR

$filename = $sampleName . '-'.date('Y-m-d_g-i-A').'.' . $file->getClientOriginalExtension(); //ex output UserUpload-2016-02-18_11-25-AM.xlsx


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow