我GoLang语言是新的,我要创建文件上传REST API的WebServer ...GoLang通过POST请求发送文件

所以我通过POST请求停留在主要功能(文件上传)到我的服务器...

我这行调用上传功能

router.POST("/upload", UploadFile) 

,这是我上传功能:

func UploadFile(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { 
    io.WriteString(w, "Upload files\n") 
    postFile(r.Form.Get("file"), "/uploads") 
} 

func postFile(filename string, targetUrl string) error { 
    bodyBuf := &bytes.Buffer{} 
    bodyWriter := multipart.NewWriter(bodyBuf) 

    // this step is very important 
    fileWriter, err := bodyWriter.CreateFormFile("file", filename) 
    if err != nil { 
     fmt.Println("error writing to buffer") 
     return err 
    } 

    // open file handle 
    fh, err := os.Open(filename) 
    if err != nil { 
     fmt.Println("error opening file") 
     return err 
    } 

    //iocopy 
    _, err = io.Copy(fileWriter, fh) 
    if err != nil { 
     panic(err) 
    } 

    bodyWriter.FormDataContentType() 
    bodyWriter.Close() 

    return err 

} 
/upload/

那么我做错了什么?

error opening fileUploadFilepostFile