使用 PHPExcel 检测已编辑的 csv 文件
Detect an edited csv file using PHPExcel
我正在使用 PHPExcel 来验证 csv 文件,然后再解析它们并将其存储在我的数据库和服务器中。我正在尝试使用文件属性来确定文件是否已被修改或者它是否是原始文件。我对 .xls、.xlsx 使用了以下内容,效果很好(使用适当的 reader);
$file = $_FILES['file']['tmp_name'];
$reader = new PHPExcel_Reader_CSV();
if($reader->canRead($file)){
$object = $reader->load($file);
$created = $object->getProperties()->getCreated();
$modified = $object->getProperties()->getModified();
if(!$created===$modified){
//File has been edited and cannot be used
}else{
//File is good, continue processing
}
}
但是,当使用 CSV 文件时,没有任何东西按预期工作。我将 MS-Word 文档重命名为 .csv->passed,编辑 csv->passed,甚至使用 .jpg->passed。我到底想念什么?任何帮助将不胜感激!编辑->我应该注意到 $created
和 $modifed
在 var_dump($object)
时完全匹配,尽管已经编辑了文件并确认了文档属性中的更改。
可从 PHPExcel 访问的属性值是存储在文件本身中的值,而不是该文件的目录条目中的值。
CSV 文件本身没有任何固有属性; CSV 纯粹是一种原始数据文件格式 这些 属性 方法用于访问其他电子表格格式中确实存在的属性,例如支持它们的 BIFF (xls) 和 OfficeOpenXML (xlsx)。将 CSV(或其他不支持属性的格式)加载到 PHPExcel 中将为这些属性提供默认值(以便您进行的调用不会触发致命错误),但它无法为不支持的内容提供实际值'本机存在于正在加载的格式中。
我正在使用 PHPExcel 来验证 csv 文件,然后再解析它们并将其存储在我的数据库和服务器中。我正在尝试使用文件属性来确定文件是否已被修改或者它是否是原始文件。我对 .xls、.xlsx 使用了以下内容,效果很好(使用适当的 reader);
$file = $_FILES['file']['tmp_name'];
$reader = new PHPExcel_Reader_CSV();
if($reader->canRead($file)){
$object = $reader->load($file);
$created = $object->getProperties()->getCreated();
$modified = $object->getProperties()->getModified();
if(!$created===$modified){
//File has been edited and cannot be used
}else{
//File is good, continue processing
}
}
但是,当使用 CSV 文件时,没有任何东西按预期工作。我将 MS-Word 文档重命名为 .csv->passed,编辑 csv->passed,甚至使用 .jpg->passed。我到底想念什么?任何帮助将不胜感激!编辑->我应该注意到 $created
和 $modifed
在 var_dump($object)
时完全匹配,尽管已经编辑了文件并确认了文档属性中的更改。
可从 PHPExcel 访问的属性值是存储在文件本身中的值,而不是该文件的目录条目中的值。
CSV 文件本身没有任何固有属性; CSV 纯粹是一种原始数据文件格式 这些 属性 方法用于访问其他电子表格格式中确实存在的属性,例如支持它们的 BIFF (xls) 和 OfficeOpenXML (xlsx)。将 CSV(或其他不支持属性的格式)加载到 PHPExcel 中将为这些属性提供默认值(以便您进行的调用不会触发致命错误),但它无法为不支持的内容提供实际值'本机存在于正在加载的格式中。