dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 95ce7f88aa0bfe5b52c9e9c7313dcff07919f7c1
parent da02fcff8fe35fe4db1e3ca085f9e504fbb4cbb1
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed, 25 Jan 2023 18:24:56 -0800

cleanup filedrop

Diffstat:
Mpkg/web/handlers/handlers.go | 15+++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -4196,20 +4196,23 @@ func FileDropHandler(c echo.Context) error { data.Error = "invalid file name, 3-50 characters" return c.HTML(http.StatusOK, formHTML+data.Error) } - fileBytes, err := ioutil.ReadAll(file) + + newFileName := utils.MD5([]byte(utils.GenerateToken32())) + f, err := os.OpenFile(filepath.Join(database.FiledropFolder, newFileName), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) if err != nil { data.Error = err.Error() return c.HTML(http.StatusOK, formHTML+data.Error) } - - newFileName := utils.MD5([]byte(utils.GenerateToken32())) - if err := ioutil.WriteFile(filepath.Join(database.FiledropFolder, newFileName), fileBytes, 0644); err != nil { - logrus.Error(err) + defer f.Close() + written, err := io.Copy(f, file) + if err != nil { + data.Error = err.Error() + return c.HTML(http.StatusOK, formHTML+data.Error) } filedrop.FileName = newFileName filedrop.OrigFileName = origFileName - filedrop.FileSize = int64(len(fileBytes)) + filedrop.FileSize = written filedrop.DoSave() return c.String(http.StatusOK, "File uploaded successfully")