El paquete net / http realiza la transmisión de medios a pedido y la carga de videos

func GetVideo (w http.ResponseWriter, r * http.Request, param httprouter.Params) { 
	vid: = param.ByName ("videoID") 
	a, err: = os.Open (`F: \ 迅雷 下载 \ 小丑 回魂.mp4`) 
	if err! = nil { 
		fmt.Println (err) 
		return 
	} 
	w.Header (). Set ("Content-Type", "video / mp4") 
	http.ServeContent (w, r, "", time .Ahora (), a) 

}

  

func UpVideo (w http.ResponseWriter, r * http.Request, param httprouter.Params) ( 
	r.Body = http.MaxBytesReader (w, r.Body, UPFILE_MAXSIZE) // El método de lectura del valor de retorno maxbytesReader excede la lectura de datos Cuando el tamaño es limitado, se devolverá un error que no sea EOF y su método Close cerrará la interfaz io.ReadCloser subyacente r. 

	if err: = r.ParseMultipartForm (UPFILE_MAXSIZE); err! = nil { 
			http.Error (w, "file is big", 404) 
		} 
	file, _, err: = r.FormFile ("file") 
	if err! = nil { 
		http.Error (w, "excepción del servidor", 501) 
	} 
	datos, err: = ioutil.ReadAll (archivo) 
	if err! = nil { 
		http.Error (w, "excepción del servidor", 501) 
	} 

	fn: = param.ByName ("videoID") 
	err = ioutil.WriteFile (VIDEO_DIR + fn, data, 066) 
	if err! = nil { 
		http.Error (w, "SERVER excepcion",
	w.WriteHeader (http.StatusCreated) 
	io.WriteString (w, "carga exitosa") 

}

  

Supongo que te gusta

Origin www.cnblogs.com/thotf/p/12717315.html
Recomendado
Clasificación