2016-12-01 4 views
0

Ich habe herum gesucht und kann keinen Weg finden, um den vollständigen Dateipfad in Go zu erhalten. Ich habe eine normale HTML-Formular und dann versuche ich, alle Daten im BackendGolang Wie bekomme ich volle Dateipfad

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

// Das wird mir den Namen der Datei zu erhalten, würde ich den vollständigen Pfad mag es

Ich habe versucht Datei path.dir() aber das tut nichts

+0

Sieht aus wie http://stackoverflow.com/questions/18639929/accessing-uploaded-files-in-golang könnte einen vernünftigen Stich an einer Antwort auf diese hat. –

+0

Möchten Sie den vollständigen Dateipfad als Zeichenfolge abrufen? – nosequeldeebee

Antwort

1

Soweit ich weiß, können Sie nicht den Dateipfad aus dem f Wert in Ihrem Code erhalten. Weil die Dateidaten noch nicht auf der Festplatte gespeichert sind.

Und Sie möchten die Datei in einem Pfad speichern, können Sie es auf diese Weise tun.

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) 
} 
Verwandte Themen