@@ -15,6 +15,7 @@ import (
15
15
"fmt"
16
16
"io/ioutil"
17
17
"net/http"
18
+ "os"
18
19
"path/filepath"
19
20
20
21
log "github.com/Sirupsen/logrus"
@@ -119,13 +120,27 @@ func uploadHandler(c *gin.Context) {
119
120
var filePaths []string
120
121
filePaths = append (filePaths , filePath )
121
122
123
+ tmpdir , err := ioutil .TempDir ("" , "extrafiles" )
124
+ if err != nil {
125
+ c .String (http .StatusBadRequest , err .Error ())
126
+ return
127
+ }
128
+
122
129
for _ , extraFile := range data .ExtraFiles {
123
- path := filepath .Join (filepath . Dir ( filePath ) , extraFile .Filename )
130
+ path := filepath .Join (tmpdir , extraFile .Filename )
124
131
filePaths = append (filePaths , path )
125
132
log .Printf ("Saving %s on %s" , extraFile .Filename , path )
133
+
134
+ err = os .MkdirAll (filepath .Dir (path ), 0744 )
135
+ if err != nil {
136
+ c .String (http .StatusBadRequest , err .Error ())
137
+ return
138
+ }
139
+
126
140
err := ioutil .WriteFile (path , extraFile .Hex , 0644 )
127
141
if err != nil {
128
- log .Printf (err .Error ())
142
+ c .String (http .StatusBadRequest , err .Error ())
143
+ return
129
144
}
130
145
}
131
146
@@ -135,7 +150,7 @@ func uploadHandler(c *gin.Context) {
135
150
136
151
go func () {
137
152
// Resolve commandline
138
- commandline , err := upload .PartiallyResolve (data .Board , filePath , data .Commandline , data .Extra , & Tools )
153
+ commandline , err := upload .PartiallyResolve (data .Board , filePath , tmpdir , data .Commandline , data .Extra , & Tools )
139
154
if err != nil {
140
155
send (map [string ]string {uploadStatusStr : "Error" , "Msg" : err .Error ()})
141
156
return
0 commit comments