本文整理匯總了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)
}