進入我的服務器我有一個獨特的upload
文件夾中有成千上萬的圖像,所以我想通過使用子文件夾重新整理它們,如../uploads/img/year/month/filename
。如何根據PHP中的上次修改日期創建文件夾?
對於所有新圖像上傳我使用這段代碼爲我的作品:
$path = __DIR__ .'/../uploads/img/' . date("Y") . '/' . date("m") . '/' . $filename;
if (!is_dir($path)) {
mkdir($path, 0775, true);
}
我如何能爲我的所有文件在同一已經上傳的文件夾,使新的目錄和排序所有文件的最後修改日期?
例如,
filename | last modified date
------ | ------
1.jpg | 24/02/2016
2.jpg | 24/04/2016
3.jpg | 24/06/2016
4.jpg | 20/08/2016
5.jpg | 24/08/2016
目標:
../uploads/img/2016/02/1.jpg
../uploads/img/2016/04/2.jpg
../uploads/img/2016/06/3.jpg
../uploads/img/2016/08/4.jpg
/5.jpg
我嘗試
function grab_pictures() {
$mpath = __DIR__ .'/../uploads/media';
foreach (glob("$mpath/*") as $file) {
$lastmoddate = filemtime($file);
$basename = basename($file);
$month = date("m", filemtime($lastmoddate));
$year = date("Y", filemtime($lastmoddate));
$newPath = __DIR__ .'/../uploads/media/' .$year. '/' .$month. '/';
if (!is_dir($newPath)) {
mkdir($newPath, 0775, true);
}
$newName = '/' .$year. '/' .$month. '/' .$basename;
$this->db->query(sprintf("UPDATE `images` SET `path` = '%s', `time` = `time`", $newName));
// Move the file into the uploaded folder
move_uploaded_file($basename, $newPath);
}
}
但它不工作,沒有文件已經被移動,只有一個文件夾的創建(1970至01年)
解決方案
function grab_pictures() {
$mpath = __DIR__ .'/../uploads/media';
foreach (glob("$mpath/*") as $file) {
if(!is_dir($file)){
$lastmoddate = filemtime($file);
$basename = basename($file);
$month = date("m", $lastmoddate);
$year = date("Y", $lastmoddate);
$newPath = __DIR__ .'/../uploads/media/' .$year. '/' .$month. '/';
if (!is_dir($newPath)) {
mkdir($newPath, 0775, true);
}
$newName = '/' .$year. '/' .$month. '/' .$basename;
$old_Path = $mpath. '/' .$basename;
$new_Path = $mpath.$newName;
$this->db->query(sprintf("UPDATE `tracks` SET `art` = '%s', `time` = `time` WHERE `art` = '%s'", $newName,$basename));
// Move the file
rename($old_Path, $new_Path);
}
}
}
'$ path = __DIR__。'/ ../uploads/img /'。日期(「Y」)。 '/'。日期(「m」)。 '/'。 $ filename;'*或許?* –
@ Fred-ii-謝謝,但並不那麼簡單。我的問題是我不知道如何對已經存在於服務器中的文件執行相同的操作。 – ilvalentino4ever
不知道你是否可以這樣做... – Tonza