2016-12-01 128 views
0

我一直在四处搜索,并找不到一种方法来获取Go中的完整文件路径。我有一个普通的HTML表单,然后我试图让所有的信息在后端Golang我怎样才能得到完整的文件路径

<form method="post" enctype="multipart/form-data" action="/uploads"> 
    <p><input type="file" name="my file" id="my file"></p> 
    <p> 
     <input type="submit" value="Submit"> 
    </p> 

func upload() { 

    f,h,err := r.FormFile("my file") 
    if err != nil { 
     log.Println(err) 
     http.Error(w,"Error Uploading",http.StatusInternalServerError) 
     return 
    } 
    defer f.Close() 
    println(h.Filename) 
    } 

//这让我的文件的名字,我想它的完整路径

我有尝试文件path.dir()但这并没有做任何事

+0

看起来像http://stackoverflow.com/questions/18639929/accessing-uploaded-files-in-golang可能有一个合理的刺在这个答案。 –

+0

你是否希望获得完整的文件路径作为一个字符串? – nosequeldeebee

回答

1

据我所知,你不能从你的代码中获得f值的文件路径。因为文件数据尚未存储在磁盘中。

而你想将文件存储到一个路径,你可以这样做。

f,h,err := r.FormFile("myfile") 
if err != nil{ 
    log.Println("err: ",err) 
    http.Error(w,"Error Uploading",http.StatusInternalServerError) 
    return 
} 
defer f.Close() 
fmt.Println("filename: ",h.Filename) 


bytes, err := ioutil.ReadAll(f) 
if err != nil { 
    fmt.Println(err) 
} 
filepath := "./aa" //set your filename and filepath 
err = ioutil.WriteFile("aa", bytes, 0777) 
if err != nil { 
    fmt.Println(err) 
} 
相关问题