(fileHeader *multipart.FileHeader)
| 54 | } |
| 55 | |
| 56 | func (s *HTMLHostService) SaveHTML(fileHeader *multipart.FileHeader) (string, error) { |
| 57 | if fileHeader == nil { |
| 58 | return "", ErrHTMLMissingFile |
| 59 | } |
| 60 | |
| 61 | if fileHeader.Size > s.maxSize { |
| 62 | return "", ErrHTMLTooLarge |
| 63 | } |
| 64 | |
| 65 | ext := strings.ToLower(filepath.Ext(fileHeader.Filename)) |
| 66 | if ext != ".html" && ext != ".htm" { |
| 67 | return "", ErrHTMLInvalidExt |
| 68 | } |
| 69 | |
| 70 | filename := GetHash(12) + ".html" |
| 71 | dst := filepath.Join(s.baseDir, filename) |
| 72 | |
| 73 | if err := s.writeFileWithLimit(fileHeader, dst); err != nil { |
| 74 | return "", err |
| 75 | } |
| 76 | |
| 77 | return filename, nil |
| 78 | } |
| 79 | |
| 80 | func (s *HTMLHostService) writeFileWithLimit(fileHeader *multipart.FileHeader, dst string) error { |
| 81 | src, err := fileHeader.Open() |
no test coverage detected