我不知道为什么filetime给了我错误的日期。有人有什么建议吗?
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
答案 0 :(得分:0)
我认为问题出在路径上试试这个:
array_push($file_creation, date ("F d Y H:i:s.", filemtime($temp_name)));
答案 1 :(得分:0)
你在一点钟获得输出1970的原因是因为你所处的时区(现在)是1小时+与GMT相比。
会发生什么是filemtime找不到文件或其他错误,但很可能是路径错误
Filemtime返回false。
Date将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])));
答案 2 :(得分:0)
阅读文件上传文档:how to handle file uploads
$_FILES["fileToUpload"]["tmp_name"][$i]
(仔细阅读, tmp _ 名称)$_FILES["fileToUpload"]["name"][$i]
中文件的名称不包含任何路径。没用来为它命名。move_uploaded_file
一旦你修复了路径问题,我打赌你会失望的:文件创建日期是文件的元数据,它由文件系统管理(如果它想要的话)并且因此不在文件。
在文件上传期间不会传输此信息。除非您的文件中可能存在元信息(如图像中的exif),否则无法获取原始文件的创建日期。顺便说一下,你想要创建日期但是使用了一个名为fileMtime的函数,'M'代表修改时间......
其余的Andreas向你解释为什么日期是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));
}