php 上传图片
2019-04-02 本文已影响0人
潇洒小菜鸟
下面是我自己的个人见解代码。
html:
<div class="maleri30">
<input type="file" class="file" name="file"><br />
</div>
控制器controller:
function upload(Request $request)
{
$info = I('post.');
$file = $this->request->file('file');
if(empty($file)){
$this->error('请上传图片');
}
//上传图片的后缀名
$name = $file->getInfo('name');
$exten = substr($name,strrpos($name,'.'));
$img_name = md5(mt_rand(0,100000).time()); //图片名
$img_path = ROOT_PATH.'public'.DS.'uploads'.DS.Date('Ymd');//图片保存路径
//如果不存在此目录,则创建此目录
if(!is_dir($img_path)){
mkdir($img_path,0777,true);
}
$img_src = $img_path.DS.$img_name.$exten; //图片URL
//上传验证
$result = $this->validate(
['file' => $file],
['file'=> 'require|image:100,100,png'],
['file.require' => '请选择上传文件','file.image'=> '必须是100*100的PNG格式文件']
);
//验证图片
$pay_img = $file->validate(['ext' => 'jpg,png']);
//上传图片
$pay_img->move($img_path,$img_name);
//插入数据库
Db::name('image')->insert([
'image' => $img_src,
'add_time' => time(),
]);
if($info){
$this->success('文件上传成功');
}else{
$this->error('文件上传失败');
}
}