laravel实现上传图片,并且制作缩略图,按照日期存放的代码


Posted in PHP onOctober 16, 2019

先上代码吧:

前端代码:

有很多小伙伴在做表单上传文件的时候没有注意表单的上传格式是什么,就可能导致上传文件、图片不成功!

<form id="form1" name="form1" class="form-horizontal form-label-left" enctype="multipart/form-data" method="post" action="{{asset('/content/add')}}" οnsubmit="submitContent()">
{{method_field('PUT')}}
laravel里面使用method_field()函数来伪造一些http请求;

<div class="form-group">
 <label class="control-label col-md-3 col-sm-3 col-xs-12" for="main_img">展示主图 <span class="required">*</span></label>
 <div class="col-md-6 col-sm-6 col-xs-12">
 <div id="inputBox">
  <input type="file" title="请选择图片" id="mainImg" name="main_img" required multiple accept="image/png,image/jpg,image/gif,image/JPEG"/>
  <div id="mainImgBox"></div>
 </div>
 </div>
</div>
 {!! csrf_field() !!}

给表单加入token;

后端处理:

首先我使用的是Intervention Image类库来制作图片的缩略图、以及保存图片到指定位置;

关于Intervention Image类库我就不多做介绍,如有不了解的请度娘帮助;

<?php
namespace App\Http\Controllers\Admin;
 
use App\Http\Controllers\Controller;
use Image;
use Validator;
 
class ContentController extends Controller{
 public function addProcess(){
 $inputData = request()->all();
 $rules = [
  'main_img' => [ 'file','image','max:10240' ]
 ];
 $validator = Validator::make($inputData,$rules);
 if($validator->fails()){
  return back()->withErrors($validator)->withInput();
 }
 
  $photo = $inputData['main_img'];
  $file_name = uniqid().'.'.$photo->getClientOriginalExtension();
  $file_relative_path = 'assess/images/content/'.date('Y-m-d');
  $file_path = public_path($file_relative_path);
  if (!is_dir($file_path)){
  mkdir($file_path);
  }
  $thumbnail_file_path = $file_path . '/thumbnail-'.$file_name;
  $image = Image::make($photo)->resize(200, null, function ($constraint) {$constraint->aspectRatio();})->save($thumbnail_file_path);
  $file_path .= '/'.$file_name;
  $image = Image::make($photo)->save($file_path);
 
 echo ‘上传成功!';
 }
}

后端处理主要思想:首先通过Validator类库来检验当前上传上来的文件是否符合要求,如果符合要求,就可以对图片进行处理了;处理的时候我是先把要保存图片的相对地址给拼接好,然后通过laravel里面的public_path函数得出绝对的local地址;再去判断该文件夹是否存在,如果不存在那就创建该文件夹。创建好文件夹后我们就应该对上传上来的图片进行进一步处理了,比如我这里需要制作它的缩略图,并且保证图片横纵比,如果有其他的要求,可以前往Intervention Image类库自行查看怎么制作。

以上这篇laravel实现上传图片,并且制作缩略图,按照日期存放的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHPMailer安装方法及简单实例
Nov 25 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
php UBB 解析实现代码
Nov 27 PHP
探讨file_get_contents与curl效率及稳定性的分析
Jun 06 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
Jun 24 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php实现TCP端口检测的方法
Apr 01 PHP
PHP打印输出函数汇总
Aug 28 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
thinkPHP显示不出验证码的原因与解决方法分析
May 20 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 28 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 #PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 #PHP
laravel 如何实现引入自己的函数或类库
Oct 15 #PHP
Laravel 类和接口注入相关的代码
Oct 15 #PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 #PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 #PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 #PHP
You might like
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHP的面向对象编程
2006/10/09 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
PHP培训要多少钱
2017/06/06 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
js中call()和apply()改变指针问题的讲解
2019/01/17 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
javascript中数组的常用算法深入分析
2019/03/12 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
python入门教程之基本算术运算符
2020/11/13 Python
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
团组织关系介绍信
2014/01/12 职场文书
十八届三中全会感言
2014/03/10 职场文书
干部考核评语
2014/04/29 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
Python中time与datetime模块使用方法详解
2022/03/31 Python