MCPcopy
hub / github.com/filebrowser/filebrowser / previewHandler

Function previewHandler

http/preview.go:37–70  ·  view source on GitHub ↗
(imgSvc ImgService, fileCache FileCache, enableThumbnails, resizePreview bool)

Source from the content-addressed store, hash-verified

35}
36
37func previewHandler(imgSvc ImgService, fileCache FileCache, enableThumbnails, resizePreview bool) handleFunc {
38 return withUser(func(w http.ResponseWriter, r *http.Request, d *data) (int, error) {
39 if !d.user.Perm.Download {
40 return http.StatusAccepted, nil
41 }
42 vars := mux.Vars(r)
43
44 previewSize, err := ParsePreviewSize(vars["size"])
45 if err != nil {
46 return http.StatusBadRequest, err
47 }
48
49 file, err := files.NewFileInfo(&files.FileOptions{
50 Fs: d.user.Fs,
51 Path: "/" + vars["path"],
52 Modify: d.user.Perm.Modify,
53 Expand: true,
54 ReadHeader: d.server.TypeDetectionByHeader,
55 Checker: d,
56 })
57 if err != nil {
58 return errToStatus(err), err
59 }
60
61 setContentDisposition(w, r, file)
62
63 switch file.Type {
64 case "image":
65 return handleImagePreview(w, r, imgSvc, fileCache, file, previewSize, enableThumbnails, resizePreview)
66 default:
67 return http.StatusNotImplemented, fmt.Errorf("can't create preview for %s type", file.Type)
68 }
69 })
70}
71
72func handleImagePreview(
73 w http.ResponseWriter,

Callers 1

NewHandlerFunction · 0.85

Calls 6

NewFileInfoFunction · 0.92
withUserFunction · 0.85
ParsePreviewSizeFunction · 0.85
errToStatusFunction · 0.85
setContentDispositionFunction · 0.85
handleImagePreviewFunction · 0.85

Tested by

no test coverage detected