mirror of https://gitea.com/webb/teal
47 lines
875 B
Go
47 lines
875 B
Go
package teal
|
|
|
|
import (
|
|
"io"
|
|
"io/ioutil"
|
|
"mime"
|
|
"mime/multipart"
|
|
"net/http"
|
|
"path/filepath"
|
|
)
|
|
|
|
// UploadFile attempts to upload file from io.Readerm and returns the response
|
|
func (c Client) UploadFile(reader io.Reader, name string) (response string, error error) {
|
|
rd := reader
|
|
n := name
|
|
|
|
r, w := io.Pipe()
|
|
m := multipart.NewWriter(w)
|
|
go func() {
|
|
defer w.Close()
|
|
defer m.Close()
|
|
part, err := createFormFileWithMIME(m, "file", n, mime.TypeByExtension(filepath.Ext(n)))
|
|
if err != nil {
|
|
return
|
|
}
|
|
if err != nil {
|
|
return
|
|
}
|
|
if _, err = io.Copy(part, rd); err != nil {
|
|
return
|
|
}
|
|
m.WriteField("key", c.UploadKey)
|
|
}()
|
|
|
|
rs, err := http.Post("https://api.pxl.blue/upload/sharex", m.FormDataContentType(), r)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
rb, err := ioutil.ReadAll(rs.Body)
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return string(rb), err
|
|
|
|
}
|