2012-03-05 2 views
0

У меня есть раздел на моем сайте, где пользователи могут загружать файл, и он хранит его в базе данных, которая будет просмотрена позже.Загрузка файла Codeigniter

Я хочу знать, как я могу это сделать, так что пользователи могут добавить еще один файл, и он обновляет его вроде как это:

версия ИМЯ_ФАЙЛА

1,1 Test2.zip

1,0 Test.zip

Если это немного смутно, дайте мне знать, я пересмотрю его, а также еще одно примечание ... Я новичок.

EDIT: Вот более подробное объяснение.

У меня есть область, где вы можете загрузить мод. Мне нужно сделать так, чтобы, когда пользователь загружает свой мод, они вводят имя файла, версию и затем загружают его. Затем на странице мода отображается то, что они вводят + ссылку на файл/загрузку. Затем, если они захотят, они могут загрузить другой файл, где он также будет добавлен в список файлов, которые они загрузили. Теперь вместо 1 файла он показывает 2 файла, их имя/версию и их ссылки для загрузки.

+0

Вы сохраняете файл как двоичные данные или только ссылку в db? –

+0

Как ссылка, так что она не забивает базу данных. – unlucky4ever

+0

Просто посмотрите, какой был номер последней версии этого файла и увеличил его. В PHP есть целая куча файловых функций: http://www.php.net/manual/de/ref.filesystem.php Вы можете взглянуть на glob(). Если вы сохраните номер версии в базе данных, это еще проще. Просто выберите его, увеличьте его и используйте в качестве версии для новой загрузки. Мы не знаем, что вы хотите точно архивировать, какие варианты вы хотите и т. Д. Если вы расскажете нам больше, мы сможем помочь дальше. –

ответ

0

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

user_id | filename | revision | date 
----------------------------------------- 
    1  |Test2.zip | 1.1  | 2012-03-05 
    1  |Test.zip | 1.0  | 2012-03-04 

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

+0

Итак, вы говорите, что я должен создать отдельную таблицу с user_id, filename, revision, date, mod_id? И присоединитесь к таблице мод и таблице mod_files вместе – unlucky4ever

+0

Да, если у вас есть пользователь, введите ревизию и имя файла. Это связано с тем, что после загрузки нового файла вы не сможете отслеживать, где находится старый файл. (Особенно, если нет никакой схемы, чтобы определить, какая ревизия связана с каким файлом.) Если вы создаете новую таблицу, вы можете ссылаться на старые версии и старые файлы просто путем объединения. – adidasadida

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