本文整理汇总了Golang中github.com/QLeelulu/goku.HttpContext.RootDir方法的典型用法代码示例。如果您正苦于以下问题:Golang HttpContext.RootDir方法的具体用法?Golang HttpContext.RootDir怎么用?Golang HttpContext.RootDir使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/QLeelulu/goku.HttpContext
的用法示例。
在下文中一共展示了HttpContext.RootDir方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: actionUpimg
/**
* 上传话题图片
*/
func actionUpimg(ctx *goku.HttpContext) goku.ActionResulter {
var ok = false
var errs string
topicId, err := strconv.ParseInt(ctx.RouteData.Params["id"], 10, 64)
if err == nil && topicId > 0 {
imgFile, header, err2 := ctx.Request.FormFile("topic-image")
err = err2
defer func() {
if imgFile != nil {
imgFile.Close()
}
}()
if err == nil {
ext := path.Ext(header.Filename)
if acceptFileTypes.MatchString(ext[1:]) == false {
errs = "错误的文件类型"
} else {
sid := strconv.FormatInt(topicId, 10)
saveDir := path.Join(ctx.RootDir(), golink.PATH_IMAGE_AVATAR, "topic", sid[len(sid)-2:])
err = os.MkdirAll(saveDir, 0755)
if err == nil {
saveName := fmt.Sprintf("%v_%v%v",
strconv.FormatInt(topicId, 36),
strconv.FormatInt(time.Now().UnixNano(), 36),
ext)
savePath := path.Join(saveDir, saveName)
var f *os.File
f, err = os.Create(savePath)
defer f.Close()
if err == nil {
_, err = io.Copy(f, imgFile)
if err == nil {
// update to db
_, err2 := models.Topic_UpdatePic(topicId, path.Join(sid[len(sid)-2:], saveName))
err = err2
if err == nil {
ok = true
}
}
}
}
}
}
} else if topicId < 1 {
errs = "参数错误"
}
if err != nil {
errs = err.Error()
}
r := map[string]interface{}{
"success": ok,
"errors": errs,
}
return ctx.Json(r)
}