MVC--图片上传
Posted PHP菜鸟进阶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC--图片上传相关的知识,希望对你有一定的参考价值。
MVC 是一种使用模型-视图-控制器设计创建 Web 应用程序的模式:
Model-------处理应用程序数据逻辑,通常模型对象负责在数据库中存取数据; View------------应用程序中处理数据显示的部分,界面即html; Controller------处理用户交互部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC框架模式下的图片上传:
function img_uplode($files){
$path = './public/uplode/';//组装上传图片存放地址 if(!file_exists($path)){
mkdir($path);
}
$path = $path.date("Y-m-d").'/';
if(!file_exists($path)){
mkdir($path);
}
$type = explode('/',$files['type']);//获取图片后缀
$img_name = time().mt_rand(0,999999).'.'.$type[1];//设置保存上传图片的名字
move_uploaded_file($files['tmp_name'], $path.$img_name);
$img_path = $path.$img_name; return $img_path;
}
当有图片上传时,调用此函数:
获取图片后缀,给图片以时间+随机数的格式重命名,以此确定图片名称的唯一
将图片复制到新路径:move_uploaded_file(原始路径,新路径)
将最终路径返回,添加到数据表中
缩略图上传
function trumb($imgPath,$width=60,$height=20){
$suffix = trim(strrchr($imgPath,'.'),'.');//获取文件后缀
$num = strrpos($imgPath,'.');
$path = substr($imgPath,0,$num).time().mt_rand(0,999999).'.'.$suffix;
$imgStr = file_get_contents($imgPath);
$img = imagecreatefromstring($imgStr);
$newImg = imagecreatetruecolor($width,$height);
$imgX = imagesx($img);
$imgY = imagesy($img);
imagecopyresized($newImg,$img,0,0,0,0,$width,$height,$imgX,$imgY);
switch ($suffix) {
case 'jpeg': imagejpeg($newImg,$path); break;
case 'png' : imagepng($newImg,$path); break;
case 'gif' : imagegif($newImg,$path); break;
}
return $path;
}
和图片上传类似,多了庞大的GD库加入:
获取文件后缀
获取点'.'的位置
拼接新路径
将原图的整个文件读入一个字符串
将字符串转成资源格式
创建新图
获取原图的宽高
用原图填充新图
根据后缀名保存新图
以上是关于MVC--图片上传的主要内容,如果未能解决你的问题,请参考以下文章
项目相关MVC中使用WebUploader进行图片预览上传以及编辑
ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例