You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

96 lines
1.5 KiB

package Helper
import (
"io"
"io/ioutil"
"mime/multipart"
"os"
"path/filepath"
"strings"
"PersonalWebsite/Variables"
)
func UploadFiles(files []*multipart.FileHeader) error {
var (
file multipart.File
dst *os.File
e error
)
for i := range files {
//for each fileheader, get a handle to the actual file
file, e = files[i].Open()
defer file.Close()
if e != nil {
return e
}
//create destination file making sure the path is writeable.
dst, e = os.Create(Variables.ProjectRoot + "/web/static/" + files[i].Filename)
defer dst.Close()
if e != nil {
return e
}
//copy the uploaded file to the destination file
if _, e := io.Copy(dst, file); e != nil {
return e
}
}
return nil
}
func WriteBody(title string, body string) (string, error) {
var (
filename, path string
f *os.File
e error
)
filename = strings.ReplaceAll(title, " ", "_") + ".gohtml"
path = filepath.Join(
Variables.ProjectRoot,
"web/posts/",
filename,
)
f, e = os.Create(path)
if e != nil {
return "", e
}
defer f.Close()
_, e = f.WriteString(body)
if e != nil {
return "", e
}
return filename, nil
}
func GetFileContents(path string) (string, error) {
var (
content []byte
e error
)
path = filepath.Join(
Variables.ProjectRoot,
"web/posts/",
path,
)
content, e = ioutil.ReadFile(path)
if e != nil {
return "", e
}
// Convert []byte to string and print to screen
return string(content), nil
}