Golang图像路径和上传结果混合

时间:2017-01-09 21:01:16

标签: go

我已成功将图像上传到我的ImageStore帐户,但我不得不对每个文件路径进行硬编码。我的问题是我的图像驻留在我的GoPath之外是否有任何方法可以在没有硬编码的情况下将实际目录添加到我的图像中?例如

GoPath =" / Users / IH / Documents / go"

实际图片路径 =" /Users/IH/Documents/pictures/horse_PNG2538.png"

路径我 =" / Users / IH / Documents / go / src"

我需要获得正确的图像路径,因为用户可以上传他们的图像,显​​然他们将会有不同的图像路径。这是我的代码

myfile, handler, err := r.FormFile("uploadImage")
if err != nil {
    fmt.Println(err)

    return
}
defer myfile.Close()


pwd, err := os.Getwd()
if err != nil {
    fmt.Println(err)
    os.Exit(1)
}
fmt.Println(pwd)

file,err := os.Open(pwd + handler.Filename)

defer file.Close()
if err != nil {
    fmt.Printf("err opening file: %s", err)
}

pwd给了我路径 / Users / IH / Documents / go / src ,其中offcourse给我一个错误,因为那里找不到图像。如果我硬编码正确的图像地址,那么它上传如

file,err := os.Open("/Users/IH/Documents/pictures/horse_PNG2538.png")

然后上传图片。同样,这张图片来自这个目录 / Users / IH / Documents / pictures / 如何在没有硬编码的情况下在图片上传中找到该目录?任何建议都会很棒

1 个答案:

答案 0 :(得分:0)

“os / user”包允许您确定当前用户的目录,如下所示:

package main

import (
    "fmt"
    "log"
    "os/user"
)

func main() {
    usr, err := user.Current()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(usr.HomeDir)
}