Файловые объекты «живы» в Chrome - измените длину файла, и значение fileObject.length
изменится при повторном чтении, чтение свойства lastModified
файла вернет дату и время самого последнего изменения, а чтение содержимого файла вернетобновленный контент (как указано в посте).
Файловые объекты не живут в Firefox в настоящее время.Значение, возвращаемое чтением fileObject.length
, остается неизменным, даже если длина файла изменилась, а чтение свойства файла lastModified
возвращает метку времени, когда была создана ссылка на файл.Попытка чтения обновленного файла приводит к тому, что обработчик onerror
средства чтения файлов вызывается с «NotReadableError: Файл не может быть прочитан» в качестве аргумента.
Спецификация File API по-прежнему остается редакторомчерновик от 1 февраля 2019 года. В разделе Файловый интерфейс говорится о создании моментального снимка состояния файла на диске (имя, длина и дата последнего изменения):
Если объект File являетсяссылка на последовательность байтов, происходящую из файла на диске, затем ее моментальный снимок должен быть установлен в состояние файла на диске во время создания объекта File.
и сопровождается следующимследующее примечание (выделено мной):
Примечание: это нетривиальное требование для реализации для пользовательских агентов, и поэтому не является обязательным, но обязательным [RFC2119],Пользовательские агенты должны стремиться к тому, чтобы состояние моментального снимка объекта File было установлено в состояние основного хранилища на диске во время получения ссылки.Если файл изменяется на диске после того, как была взята ссылка, состояние моментального снимка файла будет отличаться от состояния основного хранилища.Пользовательские агенты могут использовать метки времени модификации и другие механизмы для поддержания состояния моментального снимка, , но это оставлено как деталь реализации.
Мое чтение этогочто Firefox на данном этапе разработки стандарта не обязан реализовывать поведение Chrome как «совместимое».В то же время я не удивлюсь, если Firefox примет проект предложения когда-нибудь в будущем - или решит не делать этого.
В заключение я скорее сомневаюсь, что является решением Firefox дляВаше требование в это время.