34 lines
597 B
Go
34 lines
597 B
Go
|
|
package video
|
||
|
|
|
||
|
|
import (
|
||
|
|
"encoding/json"
|
||
|
|
"net/http"
|
||
|
|
)
|
||
|
|
|
||
|
|
func UploadVideoHandler(w http.ResponseWriter, r *http.Request) {
|
||
|
|
|
||
|
|
err := r.ParseMultipartForm(100 << 20)
|
||
|
|
if err != nil {
|
||
|
|
http.Error(w, "File too large", 400)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
file, handler, err := r.FormFile("video")
|
||
|
|
if err != nil {
|
||
|
|
http.Error(w, "Invalid file", 400)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
defer file.Close()
|
||
|
|
|
||
|
|
title := r.FormValue("title")
|
||
|
|
description := r.FormValue("description")
|
||
|
|
|
||
|
|
video, err := SaveVideo(file, handler, title, description)
|
||
|
|
if err != nil {
|
||
|
|
http.Error(w, err.Error(), 500)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
json.NewEncoder(w).Encode(video)
|
||
|
|
}
|