Я понятия не имею, почему файловое время дает мне неправильную дату. У кого-нибудь есть предложения?
for($i=0;$i<$image_count;$i++){ //Setup file names and file types
$temp_name = $target_dir . basename($_FILES["fileToUpload"]["name"][$i]);
$temp_thumb_name = $thumb_target_dir . basename($_FILES["fileToUpload"]["name"][$i]);
$temp_type = pathinfo($temp_name,PATHINFO_EXTENSION);
array_push($target_file, $temp_name); // Create array of file names
array_push($target_file_thumb, $temp_thumb_name); //Create array of thumb path names
array_push($imageFileType, $temp_type); //Create array of fileextensions
echo "<BR>was last modified: " . date ("F d Y H:i:s.", filemtime(basename($_FILES["fileToUpload"]["name"][$i])));
array_push($file_creation, date ("F d Y H:i:s.", filemtime(basename($_FILES["fileToUpload"]["name"][$i]))));
}
Выход
was last modified: January 01 1970 01:00:00.
Журнал ошибок
PHP Warning: filemtime(): stat failed for DSC07292.jpg
Прочитайте документы для загрузки файла: как обрабатывать загрузки файлов
$_FILES["fileToUpload"]["tmp_name"][$i]
(Прочитайте внимательно, это tmp_название)$_FILES["fileToUpload"]["name"][$i]
не содержит пути Бесполезно называть это.move_uploaded_file
Как только вы исправите проблему с путями, держу пари, вы будете разочарованы: дата создания файла — это метаданные файла, она управляется файловой системой (если она этого хочет) и, следовательно, не находится внутри файла.
Эта часть информации не передается во время загрузки файла. Если у вас нет файлов, в которых может содержаться метаинформация (например, exif в изображениях), невозможно получить дату создания оригинальных файлов. Кстати, вы хотите дату создания, но используете функцию с именем fileMtime, буква M обозначает время модификации …
В остальном Андреас объяснил вам, почему дата 1970, так как filemtime не находит файл для статистики.
// __DIR__ is directory of this php file, set accordingly
$target_dir = __DIR__ . '/';
$thumb_target_dir = __DIR__ . '/';
$image_count = count($_FILES["fileToUpload"]["name"]);
for ($i = 0; $i < $image_count; $i++) {
//Setup file names and file types
// Create the path to the location where we want to store the file
$temp_name = $target_dir . $_FILES["fileToUpload"]["name"][$i];
// We need to move the temp file to the location we want :
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"][$i], $temp_name);
$temp_thumb_name = $thumb_target_dir . $_FILES["fileToUpload"]["name"][$i];
$temp_type = pathinfo($temp_name, PATHINFO_EXTENSION);
array_push($target_file, $temp_name); // Create array of file names
array_push($target_file_thumb, $temp_thumb_name); //Create array of thumb path names
array_push($imageFileType, $temp_type); //Create array of fileextensions
// Get the file modif time, but only of the local file.
$fmtime = filemtime($temp_name);
echo "<BR>was last modified: " . date("F d Y H:i:s.", $fmtime);
array_push($file_creation, date("F d Y H:i:s.", $fmtime));
}
Я думаю, что проблема в пути, попробуйте это:
array_push($file_creation, date ("F d Y H:i:s.", filemtime($temp_name)));
Причина, по которой вы получаете выход 1970 в час, заключается в том, что вы находитесь в часовом поясе (сейчас), который на 1 час больше по сравнению с GMT.
Что происходит, так это то, что filemtime не находит файл или что-то еще не так, но, скорее всего, ошибка пути.
Filemtime возвращает false.
Дата читает ложь как 0.
Дата смотрит на дату в UNIX время 0, которая является полночь 1970 года.
Ваш часовой пояс добавляет 1 час.
Выходной 1 час после полуночи.
Я могу поставить свою левую руку на ошибку пути или на то, что файл не существует, и вы пытаетесь использовать filemtime.
Убедитесь, что ваш массив правильный, и что файл действительно хранится в basename () или webroot. (Сильно сомневаюсь в этом).
Если его нет в webroot, вам нужно добавить путь в filemtime (), например :.
date ("F d Y H:i:s.", filemtime("THE PATH" . basename ($_FILES["fileToUpload"]["name"][$i])));
Также путь может нуждаться в /.
Редактировать:
Теперь я вижу, что вы указали путь в комментариях к другому ответу.
Попробуй это:
date ("F d Y H:i:s.", filemtime($_SERVER["DOCUMENT_ROOT"] . "/uploads/1/" . basename ($_FILES["fileToUpload"]["name"][$i])));