Je suis nouveau dans le langage golang, et je veux créer REST API WebServer pour le téléchargement de fichiers ...golang envoyer le fichier via une requête POST
Je suis coincé dans la fonction principale (téléchargement de fichiers) via une requête POST à mon serveur ...
J'ai cette ligne pour appeler la fonction de téléchargement
router.POST("/upload", UploadFile)
et ceci est ma fonction de téléchargement:
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
}
mais je ne vois aucun fichier téléchargé dans mon répertoire /upload/
...
Alors qu'est-ce que je fais mal?
P.S Je reçois deuxième erreur =>error opening file
, donc je pense que quelque chose ne va pas dans le téléchargement de fichier ou obtenir le fichier de la fonction UploadFile
, ai-je raison? Si oui, comment je peux teancfer ou obtenir le fichier de cette fonction à la fonction postFile
?
https://golang.org/pkg/os/#OpenFile vous permet d'effectuer une gestion de mode plus précise que les autres fonctions. – bayrinat
ok, mais comment puis-je obtenir le fichier que j'envoie au serveur? parce que je peux créer un fichier, mais ce n'est pas pareil que j'envoie ... – vladimir
@Fredrik Mårlind merci !!!! Ça a marché!!!! – vladimir