HttpHandlers+Files.swift 752 B

123456789101112131415161718192021222324252627
  1. //
  2. // HttpHandlers+Files.swift
  3. // Swifter
  4. //
  5. // Copyright (c) 2014-2016 Damian Kołakowski. All rights reserved.
  6. //
  7. import Foundation
  8. extension HttpHandlers {
  9. public class func shareFilesFromDirectory(_ directoryPath: String) -> ((HttpRequest) -> HttpResponse) {
  10. return { r in
  11. guard let fileRelativePath = r.params.first else {
  12. return .NotFound
  13. }
  14. let absolutePath = directoryPath + "/" + fileRelativePath.1
  15. guard let file = try? File.openForReading(absolutePath) else {
  16. return .NotFound
  17. }
  18. return .RAW(200, "OK", [:], { writer in
  19. writer.write(file)
  20. file.close()
  21. })
  22. }
  23. }
  24. }