2016-05-20 1 views
0

Я использую Microsoft Visual Studio и SQL Server для разработки.API для поддержки загруженных версий файлов в .net

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

Есть ли opensource .net API доступен для поддержки файлов с версией?

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

Любые предложения пожалуйста, дайте мне, как выяснить это ...

ответ

0

Если у вас есть база данных, лежащих вокруг, это может быть сделано с двумя таблицами (Откладывая обсуждение о том, где хранить фактическое бинарное содержимое):

File 
---- 
ID int 
Name string(200) 
MimeType string(200) 
LastRevisionID references Revision.ID, nullable 

Revision 
---- 
FileID references File.ID 
Content varbinary(max) 

Когда файл изначально загружен:

begin tran 
insert into File ... values ... 
insert into Revision .... values .... 
update File set LastRevisionID = @lastInsertedRevisionID where ID = @id 
commit tran 

При обновлении файла, первый select * from File where Name = @name, помните LastRevisionID в @lastRevisionID, а затем:

begin tran 
insert into Revision .... values .... 
update File set LastRevisionID = @lastInsertedRevisionID 
    where ID = @id and LastRevisionID = @lastRevisionID 
commit tran 
+0

Спасибо за ваш ответ. Я попробую ваш ответ для файлов изображений. Мои типы файлов - это изображение, аудио, видео и 3D (.Ecoz). Можно ли хранить аудио, видео и 3D-файлы в базе данных? – Asha

+0

@Asha Теоретически вы можете хранить практически все - до тех пор, пока оно подходит. Практически базы данных лучше подходят для не двоичных (как в не BLOB) данных. –

+0

Благодаря @Anton можно хранить файлы в виде структуры папок, таких как черепаха svn? – Asha

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