Add a parameter named alien.

This commit is contained in:
zicla
2017-12-28 14:36:56 +08:00
parent 112edc2569
commit bbb70cfc5e
5 changed files with 15 additions and 7 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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)
}

View File

@ -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"`

View File

@ -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,