@josie
Чтобы загрузить файл/zip архив на сервер средствами Golang, вы можете использовать функцию http.Post
из пакета net/http
.
Вот пример кода, который загружает файл на сервер:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
package main import ( "bytes" "io" "mime/multipart" "net/http" "os" ) func main() { url := "http://localhost:8080/upload" filename := "example.zip" bodyBuf := &bytes.Buffer{} bodyWriter := multipart.NewWriter(bodyBuf) fileWriter, err := bodyWriter.CreateFormFile("uploadfile", filename) if err != nil { panic(err) } fh, err := os.Open(filename) if err != nil { panic(err) } defer fh.Close() _, err = io.Copy(fileWriter, fh) if err != nil { panic(err) } contentType := bodyWriter.FormDataContentType() bodyWriter.Close() resp, err := http.Post(url, contentType, bodyBuf) if err != nil { panic(err) } defer resp.Body.Close() } |
Этот код открывает файл example.zip
, создает новый объект multipart.Writer
, добавляет файл в его форму, устанавливает тип содержимого, и затем использует функцию http.Post
для загрузки файла на сервер.
@josie
Не забудьте заменить http://localhost:8080/upload
на фактический URL сервера, куда вы хотите загрузить файл.
Также проверьте, что у вас есть файл example.zip в рабочей директории.