2013-06-05 4 views
3

У меня есть сотни mp3-файлов на моем сервере. Каждый файл modified-date важен, потому что он выбирается PHP filemtime для представления даты его загрузки (поскольку нет способа определить время загрузки без сохранения значений в базе данных).FTP: Могу ли я перезаписать файл и сохранить его измененную дату?

Я столкнулся с проблемой звука, в которой все файлы должны быть нормализованы и повторно загружены на сервер. Это, конечно, изменило бы modified-date каждого файла на «сегодня». Мне нужен каждый файл, чтобы сохранить его оригинальным modified-date.

Я не уверен, что это вопрос с программным обеспечением или вопрос программирования, поэтому я приношу свои извинения, если это неправильный сайт .SE. Возможно ли это?

+3

Я знаю, что это не тот ответ, который вы ищете, но было бы гораздо разумнее начать хранить эту информацию в базе данных, чем полагаться на дату последнего изменения. Таким образом, вы можете показать своим пользователям дату, которую они должны знать, и сохранить истинную дату изменения. –

+0

Ну, вы были правы .. Намного легче изменить способ работы всего моего кода, lol: P Вы хотите опубликовать это как ответ? – Snailer

ответ

2

Я знаю, что это не ответ вы ищете, но это будет сделать гораздо больше смысла, чтобы начать хранить эту информацию в базе данных, чем полагаться на дату последнего изменения. Таким образом, вы можете показать своим пользователям дату, которую они должны знать, и сохранить истинную дату изменения.

Такой подход также дает вам большую гибкость.

По просьбе @Snailer - для того, чтобы закрыть вопрос.

3

Вы должны быть в состоянии установить время изменения с прикосновением: http://php.net/manual/en/function.touch.php

Это требует PHP> 5.3 и пользователь, запускающий скрипт (возможно, ваш веб-пользователя, если вы запустите его с кли) должен иметь разрешение на запись по файлу.

У вас есть два варианта реализации:

  1. магазин имена файлов и их mtimes на временном хранении (либо файл или таблицу базы данных). Когда вы закончите загрузку, пропустите все файлы и используйте touch для сброса mtime.

  2. При загрузке файлов проверьте, существует ли файл. Если это так, возьмите mtime во временной переменной, перезапишите файл, а затем прикоснитесь к нему с правильным mtime.

+0

Но как я могу это сделать при загрузке новых файлов? Мне пришлось бы написать скрипт для анализа каждого файла, но у меня не было бы способа ссылаться на старое модифицированное время. – Snailer

+0

@Snailer См. Правки. –

 Смежные вопросы

  • Нет связанных вопросов^_^