Skip to content

Instantly share code, notes, and snippets.

@zxhoper
Forked from andrewmilson/file-upload-multipart.go
Created December 16, 2022 12:36
Show Gist options
  • Save zxhoper/06f8c92f22f6d2adda5a5e3a78493a4a to your computer and use it in GitHub Desktop.
Save zxhoper/06f8c92f22f6d2adda5a5e3a78493a4a to your computer and use it in GitHub Desktop.
Golang multipart/form-data File Upload
package main
import (
"net/http"
"os"
"bytes"
"path"
"path/filepath"
"mime/multipart"
"io"
)
func main() {
fileDir, _ := os.Getwd()
fileName := "upload-file.txt"
filePath := path.Join(fileDir, fileName)
file, _ := os.Open(filePath)
defer file.Close()
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", filepath.Base(file.Name()))
io.Copy(part, file)
writer.Close()
r, _ := http.NewRequest("POST", "http://example.com", body)
r.Header.Add("Content-Type", writer.FormDataContentType())
client := &http.Client{}
client.Do(r)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment