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

先上代码吧:

前端代码:

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

<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实现上传图片,并且制作缩略图,按照日期存放的代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • laravel框架 laravel-admin上传图片到oss的方法

    第一步:在composer.json 中的 require 添加 "jacobcyl/ali-oss-storage": "^2.1" 然后在cmd里运行composer update 第二步:在config/app.php的providers下添加 Jacobcyl\AliOSS\AliOssServiceProvider::class, 第三步:在app/filesystems.php中的disks里下添加 'disks'=>[ ... 'oss' =&g

  • laravel实现上传图片的两种方式小结

    第一:是laravel里面自带的上传方式(写在接口里面的) function uploadAvatar(Request $request) { $user_id = Auth::id(); $avatar = $request->file('avatar')->store('/public/' . date('Y-m-d') . '/avatars'); //上传的头像字段avatar是文件类型 $avatar = Storage::url($avatar);//就是很简单的一个步骤 $res

  • Laravel框架实现的上传图片到七牛功能详解

    本文实例讲述了Laravel框架实现的上传图片到七牛功能.分享给大家供大家参考,具体如下: 新建项目 这里直接用一个新的Laravel5.3的项目进行演示,其他版本都是一样不会影响功能,顶多是路由位置不一样而已.已有项目的小伙伴可直接跳过次段. # 新建项目 laravel new laravel-qiniu cd laravel-qiniu 安装Laravel七牛扩展包 过Composer安装: composer require zgldh/qiniu-laravel-storage 然后在

  • 解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题

    具体操作如下所示: 以前的图片可以访问 现在添加的图片都不可以访问 目录里面也有这张图片 1.来到public 看见这个目录没有 , 你删掉它 然后去到命令行 修改完了之后 你会发现 public 目录下面又会多了 storage 你在去 上传图片看看就没有问题了 1.你是不是移动过storage(比如使用git) 2.你是不是在storage下面创建过什么文件(只要是就对了) 以上这篇解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题就是小编分享给大家的全部内容了,希望能

  • laravel实现一个上传图片的接口,并建立软链接,访问图片的方法

    我们同时上传的还有昵称,图片是保存在resource表里面,, 对应在userProfile有关联id;利用laravel自带上传很方便,, 但是不能直接访问,,所以需要建立软链接: PHP artisan storage:link 执行该条命令会在public里面生成存储图片的文件夹,就可以通过地址访问了 public function uploadAvatar(Request $request) { $validator = Validator::make($request->all(),

  • laravel实现上传图片并在页面显示的例子

    1:上传图片 public function updateFeedbackImg(Request $request) { $bool = false; $upload_file = $request->file("pic"); if ($upload_file->isValid()) { $realPath = $upload_file->getRealPath(); $bool = Storage::disk('feedback')->put($request

  • laravel框架上传图片实现实时预览功能

    在laravel框架中上传图片并实时预览,其实并没有那么难,下面给大家展示一下: HTML代码: <img class="pic house-a" οnclick="houseImgOne(this)" name="house_img_one" id="house_img_one" src=""> <input type="file" name="house_

  • laravel 多图上传及图片的存储例子

    1.了解文件磁盘配置: 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 在filesystems.php文件中创建了一个名为 public的文件磁盘,使用的驱动为本地存储,'root'表示的是文件最终存储的目标路径是storage/app/public

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

    先上代码吧: 前端代码: 有很多小伙伴在做表单上传文件的时候没有注意表单的上传格式是什么,就可能导致上传文件.图片不成功! <form id="form1" name="form1" class="form-horizontal form-label-left" enctype="multipart/form-data" method="post" action="{{asset('/con

  • thinkPHP实现上传图片及生成缩略图功能示例

    本文实例讲述了thinkPHP实现上传图片及生成缩略图功能.分享给大家供大家参考,具体如下: 记录一下在thinkPHP上传图片的方法(Upload)和生成缩略图(Image)的方法. html页面form中必须加enctype="multipart/form-data" <form action="__SELF__" method="post" enctype="multipart/form-data"> <

  • ASP.NET实现上传图片并生成缩略图的方法

    本文实例讲述了ASP.NET实现上传图片并生成缩略图的方法.分享给大家供大家参考,具体如下: protected void bt_upload_Click(object sender, EventArgs e) { //检查上传文件的格式是否有效 if (this.UploadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0) { Response.Write("上传图片格式无效!"); re

  • PHP上传图片类显示缩略图功能

    有缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下 <form action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post" ><input type="text" name="name" /><input type="file&q

  • django上传图片并生成缩略图方法示例

    django 处理上传图片生成缩略图首先要注意form标签上必须有enctype="multipart/form-data"属性,另外要装好PIL库, 然后就很简单了,如下是实例代码: upload.html <div id="uploader"> <form id="upload" enctype="multipart/form-data" action="/ajax/upload/"

  • thinkphp5上传图片及生成缩略图公共方法(分享)

    直接上代码,可以写在公共文件common和继承的基础类中,方便调用 /* * $name为表单上传的name值 * $filePath为为保存在入口文件夹public下面uploads/下面的文件夹名称,没有的话会自动创建 * $width指定缩略宽度 * $height指定缩略高度 * 自动生成的缩略图保存在$filePath文件夹下面的thumb文件夹里,自动创建 * @return array 一个是图片路径,一个是缩略图路径,如下: * array(2) { ["img"] =

  • python如何制作缩略图

    本文实例为大家分享了python制作缩略图的具体代码,供大家参考,具体内容如下 import cv2 #导入opencv模块 from tkinter import * #导入tkinter模块 from tkinter import ttk #tkinter最新的主题部件 from PIL import Image #初始化模块 root = Tk() root.title('Pt') root.geometry('600x300') #查找图片路径,成功则显示图片 def searchPic

  • laravel 实现上传图片到本地和前台访问示例

    在config下新建文件admin.php,定义上传文件的路径 'upload_img_path' =>'app/public/img',//本地上传图片路径 'upload_file_path' =>'app/public/files'//本地上传文件路径 在config/filesystems.php下定义 'disks' => [ 'uploadimg'=>[ 'driver'=>'local', 'root'=>storage_path(config('admi

随机推荐