Zoeken…


parameters

Param / functie Beschrijving
bestand upload naam van het veld <input>
$ sampleName kan ook een dynamisch gegenereerde string zijn of de naam van het bestand dat door de gebruiker is geüpload
app_path () is Laravel-helper om het absolute pad naar de applicatie te bieden
getCLientOriginalExtension () Laravel-wrapper om de extensie op te halen van het bestand dat door de gebruiker is geüpload zoals het op de gebruikersmachine was

Tijdstempelbestandsnamen genereren voor bestanden die door gebruikers zijn geüpload.

Hieronder werkt niet op een Windows-machine

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

Het geeft een foutmelding als "Kon bestand niet verplaatsen naar / pad ..."

Waarom? - Dit werkt perfect op een Ubuntu-server
De reden is dat op Windows colon ':' niet is toegestaan in een bestandsnaam waar het is toegestaan op linux. Dit is zo klein dat we het misschien niet van tevoren opmerken en ons blijven afvragen waarom een code die goed werkt op Ubuntu (Linux) niet werkt?
Onze eerste poging zou zijn om de bestandsrechten en dergelijke te controleren, maar we kunnen die colon ':' niet opmerken colon ':' is hier de dader.
Dus om bestanden op Windows te uploaden, gebruik geen colon':' tijdens het genereren van tijdstempel bestandsnamen , doe in plaats daarvan iets als hieronder:

$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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow