php的处理过程
<?php function PutMovie(file) { header("Content-type: video/mp4"); header("Accept-Ranges: bytes");size = filesize(file); if(isset(_SERVER['HTTP_RANGE'])){ header("HTTP/1.1 206 Partial Content"); list(name,range) = explode("=", _SERVER['HTTP_RANGE']); list(begin, end) =explode("-",range); if(end == 0)end = size - 1; } else {begin = 0; end =size - 1; } header("Content-Length: " . (end -begin + 1)); header("Content-Disposition: filename=".basename(file)); header("Content-Range: bytes ".begin."-".end."/".size); fp = fopen(file, 'rb'); fseek(fp,begin); while(!feof(fp)) {p = min(1024, end -begin + 1); begin +=p; echo fread(fp,p); } fclose($fp); } PutMovie("1.mp4");
golang的处理过程
http.ServeFile(w, r, "/webserver/1.mp4")