Welcome 微信登录

首页 / 网页编程 / PHP / thinkphp3.2实现上传图片的控制器方法

本文讲述了thinkphp3.2实现上传图片的控制器方法。分享给大家供大家参考,具体如下:
public function file(){$baseUrl = str_replace("\", "/", dirname($_SERVER["SCRIPT_NAME"]));import("ORG.Net.UploadFile");import("ORG.Util.Services_JSON");$upload = new UploadFile();$upload->maxSize = 3145728;$upload->allowExts = array("jpg", "gif", "png", "jpeg");$upload->savePath = "./uploads/Images/";$info = $upload->uploadOne($_FILES["imgFile"]);$file_url = $baseUrl . "uploads/Images/" . $info["0"]["savename"];if ($info) { header("Content-type: text/html; charset=UTF-8"); $json = new Services_JSON(); echo $json->encode(array("error" => 0, "url" => $file_url)); exit;} else { $this->error($upload->getErrorMsg());}}public function file_manager(){import("ORG.Util.Services_JSON");$php_path = dirname(__FILE__) . "/";$php_url = dirname($_SERVER["PHP_SELF"]) . "/";$root_path = $php_path . "./uploads/Images/";$root_url = $php_url . "./uploads/Images/";$ext_arr = array("gif", "jpg", "jpeg", "png", "bmp");$dir_name = emptyempty($_GET["dir"]) ? "" : trim($_GET["dir"]);if (!in_array($dir_name, array("", "image", "flash", "media", "file"))) { echo "Invalid Directory name."; exit;}if ($dir_name !== "") { $root_path .= $dir_name . "/"; $root_url .= $dir_name . "/"; if (!file_exists($root_path)) {mkdir($root_path); }}//根据path参数,设置各路径和URLif (emptyempty($_GET["path"])) { $current_path = realpath($root_path) . "/"; $current_url = $root_url; $current_dir_path = ""; $moveup_dir_path = "";} else { $current_path = realpath($root_path) . "/" . $_GET["path"]; $current_url = $root_url . $_GET["path"]; $current_dir_path = $_GET["path"]; $moveup_dir_path = preg_replace("/(.*?)[^/]+/$/", "$1", $current_dir_path);}echo realpath($root_path);//排序形式,name or size or type$order = emptyempty($_GET["order"]) ? "name" : strtolower($_GET["order"]);//不允许使用..移动到上一级目录if (preg_match("/../", $current_path)) { echo "Access is not allowed."; exit;}//最后一个字符不是/if (!preg_match("//$/", $current_path)) { echo "Parameter is not valid."; exit;}//目录不存在或不是目录if (!file_exists($current_path) || !is_dir($current_path)) { echo "Directory does not exist."; exit;}//遍历目录取得文件信息$file_list = array();if ($handle = opendir($current_path)) { $i = 0; while (false !== ($filename = readdir($handle))) {if ($filename{0} == ".") continue;$file = $current_path . $filename;if (is_dir($file)) { $file_list[$i]["is_dir"] = true; //是否文件夹 $file_list[$i]["has_file"] = (count(scandir($file)) > 2); //文件夹是否包含文件 $file_list[$i]["filesize"] = 0; //文件大小 $file_list[$i]["is_photo"] = false; //是否图片 $file_list[$i]["filetype"] = ""; //文件类别,用扩展名判断} else { $file_list[$i]["is_dir"] = false; $file_list[$i]["has_file"] = false; $file_list[$i]["filesize"] = filesize($file); $file_list[$i]["dir_path"] = ""; $file_ext = strtolower(pathinfo($file, PATHINFO_EXTENSION)); $file_list[$i]["is_photo"] = in_array($file_ext, $ext_arr); $file_list[$i]["filetype"] = $file_ext;}$file_list[$i]["filename"] = $filename; //文件名,包含扩展名$file_list[$i]["datetime"] = date("Y-m-d H:i:s", filemtime($file)); //文件最后修改时间$i++; } closedir($handle);}//排序usort($file_list, "cmp_func");$result = array();//相对于根目录的上一级目录$result["moveup_dir_path"] = $moveup_dir_path;//相对于根目录的当前目录$result["current_dir_path"] = $current_dir_path;//当前目录的URL$result["current_url"] = $current_url;//文件数$result["total_count"] = count($file_list);//文件列表数组$result["file_list"] = $file_list;//输出JSON字符串header("Content-type: application/json; charset=UTF-8");$json = new Services_JSON();echo $json->encode($result);}
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。