MCPcopy Create free account
hub / github.com/GrowAdept/youtube / uploadFile

Function uploadFile

gowebdev/uploadFile/main.go:13–58  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

11var tpl *template.Template
12
13func uploadFile(w http.ResponseWriter, r *http.Request) {
14 fmt.Println("r.method:", r.Method)
15 // if method is GET then load form, if not then upload successfull message
16 if r.Method == "GET" {
17 tpl.ExecuteTemplate(w, "fileUpload.html", nil)
18 return
19 }
20 // func (r *Request) ParseMultipartForm(maxMemory int64) error
21 r.ParseMultipartForm(10)
22 // func (r *Request) FormFile(key string) (multipart.File, *multipart.FileHeader, error)
23 file, fileHeader, err := r.FormFile("myFile")
24 if err != nil {
25 fmt.Println(err)
26 return
27 }
28 defer file.Close()
29 fmt.Printf("fileHeader.Filename: %v\n", fileHeader.Filename)
30 fmt.Printf("fileHeader.Size: %v\n", fileHeader.Size)
31 fmt.Printf("fileHeader.Header: %v\n", fileHeader.Header)
32
33 // tempFile, err := ioutil.TempFile("images", "upload-*.png")
34 contentType := fileHeader.Header["Content-Type"][0]
35 fmt.Println("Content Type:", contentType)
36 var osFile *os.File
37 // func TempFile(dir, pattern string) (f *os.File, err error)
38 if contentType == "image/jpeg" {
39 osFile, err = ioutil.TempFile("images", "*.jpg")
40 } else if contentType == "application/pdf" {
41 osFile, err = ioutil.TempFile("PDFs", "*.pdf")
42 } else if contentType == "text/javascript" {
43 osFile, err = ioutil.TempFile("js", "*.js")
44 }
45 fmt.Println("error:", err)
46 defer osFile.Close()
47
48 // func ReadAll(r io.Reader) ([]byte, error)
49 fileBytes, err := ioutil.ReadAll(file)
50 if err != nil {
51 fmt.Println(err)
52 }
53 // func (f *File) Write(b []byte) (n int, err error)
54
55 osFile.Write(fileBytes)
56
57 fmt.Fprintf(w, "Your File was Successfully Uploaded!\n")
58}
59
60func main() {
61 tpl, _ = tpl.ParseGlob("templates/*.html")

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected