iT邦幫忙

0

Laravel 上傳檔案命名為當前時間出問題

如題

在laravel專案中,使用Carbon,API中的Carbon::now()方法

//取得input name為componentsList 的資料
$uploadFileName = $request->file('componentsList');
$uploadTime = Carbon::now();
//將其儲存為 當前時間.csv 之檔案
$savePath = $uploadFileName->storeAs('componentsList/'.$projectID,$uploadTime . '.csv');

問題就出在命名時會因為後面的時間而無法創建成功
2019-02-03 13:01:14 ->
顯示 fopen(C:專案\的路徑\componentsList/1/2019-02-03 13:01:14.csv)failed to open stream: No such file or directory

後來我手動命名以下是測試結果
2019-02-03 13:01 ->
有存到檔案,名為"2019-02-03 13" 沒有.csv

2019-02-03 13 ->
檔案名為"2019-02-03 13.csv" 儲存成功

chebub iT邦新手 5 級 ‧ 2020-02-03 13:30:05 檢舉
因為檔名不能有特殊符號...

2 個回答

2
浩瀚星空
iT邦超人 1 級 ‧ 2020-02-03 13:33:24
最佳解答

不要錯怪 Laravel 啦。

原本檔名就不該出現特殊符號的。
「:」就是一個不能使用的檔名字符。

chebub iT邦新手 5 級 ‧ 2020-02-03 13:36:52 檢舉

對滴 laravel 最棒了 XD

0
kwkevinchan
iT邦新手 5 級 ‧ 2020-02-06 14:11:56

建議用時間戳記來放
這樣就全部都是數字了
如果要語意化的話只能用format()輸出想要的字串吧

chebub iT邦新手 5 級 ‧ 2020-02-06 14:53:23 檢舉

我是改用 date("Y-m-d").' '.date("H-i-s") 這樣來命名

我要發表回答

立即登入回答