properly use createtemp for the uploaded files

This commit is contained in:
Joren 2024-09-06 19:05:57 +02:00
parent 93d262d293
commit 7edf4ed9c5
Signed by: Joren
GPG Key ID: 280E33DFBC0F1B55

View File

@ -7,7 +7,6 @@ import (
"net/http"
"os"
"path/filepath"
"time"
)
func handleRoot(w http.ResponseWriter, r *http.Request) {
@ -37,32 +36,31 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
}
defer file.Close()
filename := fmt.Sprintf("%d_%s", time.Now().UnixNano(), header.Filename)
filepath := filepath.Join(uploadDir, filename)
newFile, err := os.Create(filepath)
tempFile, err := os.CreateTemp(uploadDir, header.Filename)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer newFile.Close()
defer tempFile.Close()
_, err = io.Copy(newFile, file)
_, err = io.Copy(tempFile, file)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
tempFilename := filepath.Base(tempFile.Name())
go func() {
err := processInputFile(filepath)
err := processInputFile(tempFile.Name())
if err != nil {
fmt.Printf("Error processing file: %v\n", err)
}
os.Remove(filepath)
os.Remove(tempFile.Name())
}()
http.Redirect(w, r, "/progress?filename="+filename, http.StatusSeeOther)
http.Redirect(w, r, "/progress?filename="+tempFilename, http.StatusSeeOther)
}
func handleProgress(w http.ResponseWriter, r *http.Request) {