fix server.go

This commit is contained in:
Dikiy13371 2025-10-07 23:53:48 +03:00
parent b2ae172623
commit a374c39dd8

View file

@ -891,20 +891,19 @@ func (s *ServerService) GetDb() ([]byte, error) {
return fileContents, nil return fileContents, nil
} }
// ImportDB загружает SQLite-базу, валидирует заголовок и подменяет текущий файл БД.
func (s *ServerService) ImportDB(file multipart.File) error { func (s *ServerService) ImportDB(file multipart.File) error {
// Check if the file is a SQLite database // ---- Проверка, что файл действительно SQLite ----
isValidDb, err := database.IsSQLiteDB(file) header := make([]byte, 16)
if err != nil { if _, err := io.ReadFull(file, header); err != nil {
return common.NewErrorf("Error checking db file format: %v", err) return common.NewErrorf("error reading db header: %v", err)
} }
if !isValidDb { if string(header) != "SQLite format 3\x00" {
return common.NewError("Invalid db file format") return common.NewErrorf("invalid db file format")
} }
// вернуть курсор в начало для последующего копирования
// Reset the file reader to the beginning if _, err := file.Seek(0, io.SeekStart); err != nil {
_, err = file.Seek(0, 0) return common.NewErrorf("error resetting file reader: %v", err)
if err != nil {
return common.NewErrorf("Error resetting file reader: %v", err)
} }
// Save the file as a temporary file // Save the file as a temporary file