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.MVC的模板标签系统(五)
Sep 05 PHP
基于OpenCV的PHP图像人脸识别技术
Oct 11 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
PHP array_multisort()函数的使用札记
Jul 03 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
smarty中post用法实例
Nov 28 PHP
php实现只保留mysql中最新1000条记录
Jun 18 PHP
composer.lock文件的作用
Feb 03 PHP
Yii框架表单提交验证功能分析
Jan 07 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 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
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
php天翼开放平台短信发送接口实现方法
2014/12/22 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
html数组字符串拼接的最快方法
2009/09/16 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
python实现按日期归档文件
2021/01/30 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
环境工程专业自荐信
2014/03/03 职场文书
给校长的建议书500字
2014/05/15 职场文书
消防工作实施方案
2014/06/09 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书
MySQL分布式恢复进阶
2022/07/23 MySQL