mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-07-20 23:25:35 +08:00
fix some bug and add HTTP image upload
This commit is contained in:
140
config/file_header.json
Normal file
140
config/file_header.json
Normal file
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"ai": "application/postscript",
|
||||
"aif": "audio/x-aiff",
|
||||
"aifc": "audio/x-aiff",
|
||||
"aiff": "audio/x-aiff",
|
||||
"asc": "text/plain",
|
||||
"au": "audio/basic",
|
||||
"avi": "video/x-msvideo",
|
||||
"bcpio": "application/x-bcpio",
|
||||
"bin": "application/octet-stream",
|
||||
"bmp": "image/bmp",
|
||||
"cdf": "application/x-netcdf",
|
||||
"class": "application/octet-stream",
|
||||
"cpio": "application/x-cpio",
|
||||
"cpt": "application/mac-compactpro",
|
||||
"csh": "application/x-csh",
|
||||
"css": "text/css",
|
||||
"dcr": "application/x-director",
|
||||
"dir": "application/x-director",
|
||||
"djv": "image/vnd.djvu",
|
||||
"djvu": "image/vnd.djvu",
|
||||
"dll": "application/octet-stream",
|
||||
"dms": "application/octet-stream",
|
||||
"doc": "application/msword",
|
||||
"dvi": "application/x-dvi",
|
||||
"dxr": "application/x-director",
|
||||
"eps": "application/postscript",
|
||||
"etx": "text/x-setext",
|
||||
"exe": "application/octet-stream",
|
||||
"ez": "application/andrew-inset",
|
||||
"gif": "image/gif",
|
||||
"gtar": "application/x-gtar",
|
||||
"hdf": "application/x-hdf",
|
||||
"hqx": "application/mac-binhex40",
|
||||
"htm": "text/html",
|
||||
"html": "text/html",
|
||||
"ice": "x-conference/x-cooltalk",
|
||||
"ief": "image/ief",
|
||||
"iges": "model/iges",
|
||||
"igs": "model/iges",
|
||||
"jpe": "image/jpeg",
|
||||
"jpeg": "image/jpeg",
|
||||
"jpg": "image/jpeg",
|
||||
"js": "application/x-javascript",
|
||||
"kar": "audio/midi",
|
||||
"latex": "application/x-latex",
|
||||
"lha": "application/octet-stream",
|
||||
"lzh": "application/octet-stream",
|
||||
"m3u": "audio/x-mpegurl",
|
||||
"man": "application/x-troff-man",
|
||||
"me": "application/x-troff-me",
|
||||
"mesh": "model/mesh",
|
||||
"mid": "audio/midi",
|
||||
"midi": "audio/midi",
|
||||
"mif": "application/vnd.mif",
|
||||
"mov": "video/quicktime",
|
||||
"movie": "video/x-sgi-movie",
|
||||
"mp2": "audio/mpeg",
|
||||
"mp3": "audio/mpeg",
|
||||
"mpe": "video/mpeg",
|
||||
"mpeg": "video/mpeg",
|
||||
"mpg": "video/mpeg",
|
||||
"mpga": "audio/mpeg",
|
||||
"ms": "application/x-troff-ms",
|
||||
"msh": "model/mesh",
|
||||
"mxu": "video/vnd.mpegurl",
|
||||
"nc": "application/x-netcdf",
|
||||
"oda": "application/oda",
|
||||
"pbm": "image/x-portable-bitmap",
|
||||
"pdb": "chemical/x-pdb",
|
||||
"pdf": "application/pdf",
|
||||
"pgm": "image/x-portable-graymap",
|
||||
"pgn": "application/x-chess-pgn",
|
||||
"png": "image/png",
|
||||
"pnm": "image/x-portable-anymap",
|
||||
"ppm": "image/x-portable-pixmap",
|
||||
"ppt": "application/vnd.ms-powerpoint",
|
||||
"ps": "application/postscript",
|
||||
"qt": "video/quicktime",
|
||||
"ra": "audio/x-realaudio",
|
||||
"ram": "audio/x-pn-realaudio",
|
||||
"ras": "image/x-cmu-raster",
|
||||
"rgb": "image/x-rgb",
|
||||
"rm": "audio/x-pn-realaudio",
|
||||
"roff": "application/x-troff",
|
||||
"rpm": "audio/x-pn-realaudio-plugin",
|
||||
"rtf": "text/rtf",
|
||||
"rtx": "text/richtext",
|
||||
"sgm": "text/sgml",
|
||||
"sgml": "text/sgml",
|
||||
"sh": "application/x-sh",
|
||||
"shar": "application/x-shar",
|
||||
"silo": "model/mesh",
|
||||
"sit": "application/x-stuffit",
|
||||
"skd": "application/x-koan",
|
||||
"skm": "application/x-koan",
|
||||
"skp": "application/x-koan",
|
||||
"skt": "application/x-koan",
|
||||
"smi": "application/smil",
|
||||
"smil": "application/smil",
|
||||
"snd": "audio/basic",
|
||||
"so": "application/octet-stream",
|
||||
"spl": "application/x-futuresplash",
|
||||
"src": "application/x-wais-source",
|
||||
"sv4cpio": "application/x-sv4cpio",
|
||||
"sv4crc": "application/x-sv4crc",
|
||||
"swf": "application/x-shockwave-flash",
|
||||
"t": "application/x-troff",
|
||||
"tar": "application/x-tar",
|
||||
"tcl": "application/x-tcl",
|
||||
"tex": "application/x-tex",
|
||||
"texi": "application/x-texinfo",
|
||||
"texinfo": "application/x-texinfo",
|
||||
"tif": "image/tiff",
|
||||
"tiff": "image/tiff",
|
||||
"tr": "application/x-troff",
|
||||
"tsv": "text/tab-separated-values",
|
||||
"txt": "text/plain",
|
||||
"ustar": "application/x-ustar",
|
||||
"vcd": "application/x-cdlink",
|
||||
"vrml": "model/vrml",
|
||||
"wav": "audio/x-wav",
|
||||
"wbmp": "image/vnd.wap.wbmp",
|
||||
"wbxml": "application/vnd.wap.wbxml",
|
||||
"wml": "text/vnd.wap.wml",
|
||||
"wmlc": "application/vnd.wap.wmlc",
|
||||
"wmls": "text/vnd.wap.wmlscript",
|
||||
"wmlsc": "application/vnd.wap.wmlscriptc",
|
||||
"wrl": "model/vrml",
|
||||
"xbm": "image/x-xbitmap",
|
||||
"xht": "application/xhtml+xml",
|
||||
"xhtml": "application/xhtml+xml",
|
||||
"xls": "application/vnd.ms-excel",
|
||||
"xml": "text/xml",
|
||||
"xpm": "image/x-xpixmap",
|
||||
"xsl": "text/xml",
|
||||
"xwd": "image/x-xwindowdump",
|
||||
"xyz": "chemical/x-xyz",
|
||||
"zip": "application/zip"
|
||||
}
|
||||
@@ -99,7 +99,7 @@ class ZMBuf
|
||||
}
|
||||
|
||||
static function config($config_name) {
|
||||
return self::$config ?? null;
|
||||
return self::$config[$config_name] ?? null;
|
||||
}
|
||||
|
||||
public static function resetCache() {
|
||||
|
||||
35
src/Module/Example/HttpImageManager.php
Normal file
35
src/Module/Example/HttpImageManager.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Module\Example;
|
||||
|
||||
use Co;
|
||||
use Framework\Console;
|
||||
use Framework\ZMBuf;
|
||||
use ZM\Annotation\Http\RequestMapping;
|
||||
use ZM\Annotation\Swoole\SwooleEventAfter;
|
||||
use ZM\ModBase;
|
||||
use ZM\Utils\DataProvider;
|
||||
|
||||
class HttpImageManager extends ModBase
|
||||
{
|
||||
/**
|
||||
* @param $param
|
||||
* @RequestMapping("/images/{file_name}")
|
||||
*/
|
||||
public function innerImage($param) {
|
||||
$filename = DataProvider::getResourceFolder() . "images/";
|
||||
$param_name = $param["file_name"];
|
||||
$param_name = strtolower($param_name);
|
||||
if (mb_strpos($param_name, "..") !== false) {
|
||||
$this->response->status(404);
|
||||
$this->response->end();
|
||||
return;
|
||||
}
|
||||
$exp = explode(".", $param_name);
|
||||
if (($type = array_pop($exp))) {
|
||||
$this->response->header("Content-Type", ZMBuf::config("file_header")[$type] ?? "text/html");
|
||||
}
|
||||
$this->response->end(Co::readFile($filename . $param_name));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user