Sök…


parametrar

Param / funktion Beskrivning
filuppladdning namnet på fältet <input>
$ sampleName kan också vara en dynamisk genererad sträng eller namnet på filen som laddats upp av användaren
app_path () är Laravel-hjälper för att ge den absoluta vägen till applikationen
getCLientOriginalExtension () Laravel-omslaget för att hämta filtillägget som laddats upp av användaren som på användarmaskinen

Genererar tidsstämplade filnamn för filer som laddats upp av användare.

Nedan fungerar inte på en Windows-maskin

$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);  

Det kommer att kasta ett fel som "Kunde inte flytta fil till / sökväg ..."

Varför? - Det här fungerar perfekt på en Ubuntu-server
Anledningen är att på Windows colon ':' inte är tillåtet i ett filnamn där det är tillåtet på Linux. Det här är en så liten sak att vi kanske inte märker det på förhand och fortsätter att undra att varför en kod som fungerar bra på Ubuntu (Linux) inte fungerar?
Vår första ansträngning skulle vara att kontrollera filtillstånd och sådant, men vi kanske inte märker att colon ':' är den skyldige här.
Så för att ladda upp filer på Windows, använd inte colon':' medan du skapar tidsstämplade filnamn , gör istället något liknande nedan:

$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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow