Advertisement
Guest User

Untitled

a guest
Sep 30th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. func save_multipart_upload(r *http.Request, savepath string) ([]string, error) {
  2. fmt.Println("CALL: save_multipart_upload(r,"+savepath+")")
  3.  
  4. var savedfiles []string
  5.  
  6. err := r.ParseMultipartForm(100000)
  7. if err != nil {
  8. return savedfiles, err
  9. }
  10.  
  11. m := r.MultipartForm
  12. fmt.Printf("MPF: %#v n", m)
  13.  
  14. for fname, _ := range r.MultipartForm.File {
  15. files := m.File[fname]
  16. fmt.Printf("files: %#v n", m)
  17. for i, _ := range files {
  18. //for each fileheader, get a handle to the actual file
  19. file, err := files[i].Open()
  20. fmt.Printf("file: %#v n", file)
  21. defer file.Close()
  22. if err != nil {
  23. return savedfiles, err
  24. }
  25. //create destination file making sure the path is writeable.
  26. var filename string
  27. if savepath[:len(savepath)] == "/" {
  28. filename = savepath + files[i].Filename
  29. } else {
  30. filename = savepath + "/" + files[i].Filename
  31. }
  32. dst, err := os.Create(filename)
  33. if err != nil {
  34. fmt.Println("Can't create "+filename+": "+err.Error())
  35. return savedfiles, err
  36. } else if _, err := io.Copy(dst, file); err != nil {
  37. fmt.Println("Can't copy data %s: "+err.Error(), filename)
  38. return savedfiles, err
  39. } else {
  40. fmt.Println("Saved %s successfully.", filename)
  41. savedfiles = append(savedfiles, files[i].Filename)
  42. }
  43. }
  44. }
  45. /* end multipart upload */
  46. fmt.Println("RETURN: receive_multipart_upload")
  47. return savedfiles, err
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement