diff --git a/rest/alien_controller.go b/rest/alien_controller.go index 21ddff6..4bb9eb7 100644 --- a/rest/alien_controller.go +++ b/rest/alien_controller.go @@ -239,7 +239,7 @@ func (this *AlienController) Upload(writer http.ResponseWriter, request *http.Re panic("文件大小不正确") } - matter := this.matterService.Upload(file, user, uploadToken.FolderUuid, uploadToken.Filename, uploadToken.Privacy) + matter := this.matterService.Upload(file, user, uploadToken.FolderUuid, uploadToken.Filename, uploadToken.Privacy, true) //更新这个uploadToken的信息. uploadToken.ExpireTime = time.Now() diff --git a/rest/install.go b/rest/install.go index e62c210..fc08484 100644 --- a/rest/install.go +++ b/rest/install.go @@ -37,7 +37,7 @@ func InstallDatabase() { matter := &Matter{} hasTable = db.HasTable(matter) if !hasTable { - createMatter := "CREATE TABLE `tank10_matter` (`uuid` char(36) NOT NULL,`puuid` varchar(45) DEFAULT NULL COMMENT '上一级的uuid',`user_uuid` char(36) DEFAULT NULL COMMENT '上传的用户id',`dir` tinyint(1) DEFAULT NULL COMMENT '是否是文件夹',`name` varchar(255) DEFAULT NULL COMMENT '文件名称',`md5` varchar(45) DEFAULT NULL COMMENT '文件的md5值',`size` bigint(20) DEFAULT '0' COMMENT '文件大小',`privacy` tinyint(1) DEFAULT '0' COMMENT '文件是否是公有的',`path` varchar(255) DEFAULT NULL,`sort` bigint(20) DEFAULT NULL,`modify_time` timestamp NULL DEFAULT NULL,`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`uuid`),UNIQUE KEY `id_UNIQUE` (`uuid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='file表';" + createMatter := "CREATE TABLE `tank10_matter` (`uuid` char(36) NOT NULL,`puuid` varchar(45) DEFAULT NULL COMMENT '上一级的uuid',`user_uuid` char(36) DEFAULT NULL COMMENT '上传的用户id',`dir` tinyint(1) DEFAULT '0' COMMENT '是否是文件夹',`alien` tinyint(1) DEFAULT '0',`name` varchar(255) DEFAULT NULL COMMENT '文件名称',`md5` varchar(45) DEFAULT NULL COMMENT '文件的md5值',`size` bigint(20) DEFAULT '0' COMMENT '文件大小',`privacy` tinyint(1) DEFAULT '0' COMMENT '文件是否是公有的',`path` varchar(255) DEFAULT NULL,`sort` bigint(20) DEFAULT NULL,`modify_time` timestamp NULL DEFAULT NULL,`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',PRIMARY KEY (`uuid`),UNIQUE KEY `id_UNIQUE` (`uuid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='file表';" db = db.Exec(createMatter) if db.Error != nil { LogPanic(db.Error) diff --git a/rest/matter_controller.go b/rest/matter_controller.go index 07aec60..3cf8222 100644 --- a/rest/matter_controller.go +++ b/rest/matter_controller.go @@ -216,12 +216,18 @@ func (this *MatterController) Upload(writer http.ResponseWriter, request *http.R } + alienStr := request.FormValue("alien") + alien := false + if alienStr == "true" { + alien = true + } + request.ParseMultipartForm(32 << 20) file, handler, err := request.FormFile("file") this.PanicError(err) defer file.Close() - matter := this.matterService.Upload(file, user, puuid, handler.Filename, true) + matter := this.matterService.Upload(file, user, puuid, handler.Filename, true, alien) return this.Success(matter) } diff --git a/rest/matter_model.go b/rest/matter_model.go index 524396c..27d5d1d 100644 --- a/rest/matter_model.go +++ b/rest/matter_model.go @@ -5,6 +5,7 @@ type Matter struct { Puuid string `json:"puuid"` UserUuid string `json:"userUuid"` Dir bool `json:"dir"` + Alien bool `json:"alien"` Name string `json:"name"` Md5 string `json:"md5"` Size int64 `json:"size"` diff --git a/rest/matter_service.go b/rest/matter_service.go index 3e433fe..006ee27 100644 --- a/rest/matter_service.go +++ b/rest/matter_service.go @@ -6,7 +6,6 @@ import ( "os" "regexp" "strings" - ) //@Service @@ -59,11 +58,12 @@ func (this *MatterService) GetDirUuid(userUuid string, dir string) string { matter := this.matterDao.FindByUserUuidAndPuuidAndNameAndDirTrue(userUuid, puuid, name) if matter == nil { - //创建一个文件夹。 + //创建一个文件夹。这里一般都是通过alien接口来创建的文件夹。 matter = &Matter{ Puuid: puuid, UserUuid: userUuid, Dir: true, + Alien: true, Name: name, } matter = this.matterDao.Create(matter) @@ -76,8 +76,8 @@ func (this *MatterService) GetDirUuid(userUuid string, dir string) string { } //开始上传文件 -//上传文件 -func (this *MatterService) Upload(file multipart.File, user *User, puuid string, filename string, privacy bool) *Matter { +//上传文件. alien表明文件是否是应用使用的文件。 +func (this *MatterService) Upload(file multipart.File, user *User, puuid string, filename string, privacy bool, alien bool) *Matter { //获取文件应该存放在的物理路径的绝对路径和相对路径。 absolutePath, relativePath := GetUserFilePath(user.Username) @@ -104,6 +104,7 @@ func (this *MatterService) Upload(file multipart.File, user *User, puuid string, Puuid: puuid, UserUuid: user.Uuid, Dir: false, + Alien: alien, Name: filename, Md5: "", Size: written,