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 相关文章推荐
如何正确理解PHP的错误信息
Oct 09 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
php开发环境配置记录
Jan 14 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
PHP7 错误处理机制修改
Mar 09 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
PHP文件操作实现代码分享
2011/09/01 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
laravel批量生成假数据的方法
2019/10/09 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python学习笔记之函数的参数和返回值的使用
2019/11/20 Python
Python内置函数property()如何使用
2020/09/01 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
sort命令的作用和用法
2012/11/04 面试题
标准导师推荐信(医学类)
2013/10/28 职场文书
诚信考试承诺书
2014/03/27 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2015年感恩母亲节的演讲稿
2015/03/18 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
MySQL大小写敏感的注意事项
2021/05/24 MySQL