Szukaj…


Parametry

Param / Function Opis
Udostępnianie pliku nazwa pola pliku <input>
$ sampleName może być również dynamicznie generowany ciąg znaków lub nazwa pliku przesłanego przez użytkownika
app_path () jest pomocnikiem Laravela, który zapewnia bezwzględną ścieżkę do aplikacji
getCLientOriginalExtension () Opakowanie Laravel, aby pobrać rozszerzenie pliku przesłanego przez użytkownika tak, jak było na komputerze użytkownika

Generowanie sygnatur czasowych nazw plików przesyłanych przez użytkowników.

Poniżej nie będzie działać na komputerze z systemem 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);  

Zgłasza błąd typu „Nie można przenieść pliku do / ścieżki ...”

Dlaczego? - Działa to doskonale na serwerze Ubuntu
Powodem jest to, że w colon ':' systemu Windows colon ':' nie jest dozwolone w nazwie pliku, ponieważ jest to dozwolone w systemie Linux. Jest to tak mała rzecz, że możemy jej nie zauważyć i zastanawiać się, dlaczego kod działający dobrze na Ubuntu (Linux) nie działa?
Naszym pierwszym przeczuciem byłoby sprawdzenie uprawnień do plików i tego typu rzeczy, ale możemy nie zauważyć, że przyczyną jest colon ':' .
Aby więc przesłać pliki do systemu Windows, nie używaj colon':' podczas generowania nazw plików ze znacznikami czasu , zamiast tego wykonaj coś takiego:

$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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow