美文网首页
laravel5.5 ajax上传图片

laravel5.5 ajax上传图片

作者: 小瞪瞪 | 来源:发表于2018-08-31 11:32 被阅读0次

laravel做上传特别简单,。就调用两个函数名。就可。

下面是我做了详细操作,所以看起来代码有点多。其实只有一点点  (笑脸)

第一步:更改filessystem.php

'public' => [

    'driver' => 'local',

    'root' => public_path('uploads'),  //public目录-->文件存放的目录为public/uploads文件夹

    'url' => '/uploads',

    'visibility' => 'public',

],

我做的方法不需要修改filesystem.php

第二步:设置web.php 路径

、Route::any('/upload',TransactionController@upload');//any

第三步:写html

入口:

js一、

js2:

js3.   注:ajax上传图片必须async:false;contentType:false;processData:false; php才能接收到

form表单:

注意:laravel post提交必须有token验证   {{ csrf_field() }}

第四步:model/UploadImage.php

贴代码:(我网上找的一个大神的上传类,贴过来的,感觉挺好用的)

namespace App\Model;

use Illuminate\Foundation\Auth\User as Authenticatable;

use Illuminate\Http\Response;

use Input,DB,Request;

use Validator;

/**上传图片模型层*/

class UploadsImg extends Authenticatable

{

public function upload_img($file,$url_path,$rule,$uid)

{

// 检验一下上传的文件是否有效.

  if($file->isValid()){

  // 缓存在tmp文件夹中的文件名 例如 php8933.tmp 这种类型的.

  $clientName = $file -> getClientOriginalName();

  $tmpName = $file ->getFileName();

  // 这个表示的是缓存在tmp文件夹下的文件的绝对路径(这里要注意,如果我使用接下来的move方法之后, getRealPath() 就找不到文件的路径了.因为文件已经被移走了.所以这里道出了文件上传的原理,将文件上传的某个临时目录中,然后使用Php的函数将文件移动到指定的文件夹.) 

  $realPath = $file -> getRealPath();

        // 上传文件的后缀.

  $entension = $file -> getClientOriginalExtension();

        if(!in_array($entension,$rule)){

  return '图片格式为jpg,png,gif';

  }

  $newName =md5(date("Ymd")).$uid.".".$entension;

  $path = $file -> move($url_path,$newName);

  // 这里public_path()就是public文件夹所在的路径.$newName 通过算法获得的文件的名称.主要是不能重复产生冲突即可. 

  // 利用日期和客户端文件名结合 使用md5 算法加密得到结果.后面加上文件原始的拓展名.

                //文件名

                $namePath = $url_path.'/'.$newName;

  return ['name' => $newName,'path' => $namePath];

  }else{

      return 0;

        }

}

}

第五步: 控制器:

use App\Model\UploadsImg;

第六步:

//文件上传

    public function upload(Request $request){

        $this->uploadImg = new UploadsImg;

        $file=$request->file("files");

        $url_path="uploads/qrcode";

        $rule=['jpg','png','gif'];

        $id=$request->post("aid").$request->post("a_uid").$request->post("d_id");

        $uploadRes=$this->uploadImg->upload_img($file,$url_path,$rule,$id);

        if($uploadRes){

          $data=DB::table('code_change')

              ->where('id', $request->post("d_id"))

              ->update(['new_code' => $uploadRes['path']]);

        return json_encode(['msg'=>'上传成功','code'=>1]);

      }else{

          return json_encode(['msg'=>'上传失败','code'=>0]);

      }

    }

第六步:取图片

注意;laravel5.5通常会将图片存入storage/public下。

需在控制器指定路径:

  $url_path="uploads/qrcode";

相关文章

  • Laravel+Layer 图片上传功能整理

    ♩ 背景 昨天在自己的 Laravel5.5 框架项目中,希望集成 Layer 的图片上传功能 但是在 ajax...

  • laravel5.5 ajax上传图片

    laravel做上传特别简单,。就调用两个函数名。就可。 下面是我做了详细操作,所以看起来代码有点多。其实只有一点...

  • django上传图片前后端实例

    相关阅读 JQuery Ajax使用FormData对象上传文件 图片 | CSDNDjango 图片上传、存储与...

  • 2018-05-23

    图片上传 form上传 ajax上传 FileReader 利用FileReader对象,将input中的file...

  • ajax上传图片

    场景:1、使用cropper裁剪图片、html2canvas合成图片后将图片上传至顽兔空间2、运行环境手淘、天猫3...

  • Ajax图片上传

    1、定义上传的图片展示和按钮 2、点击时调用的上传功能的函数 3、先定义好文件上传处理函数 4、再使用定义好的查询...

  • ajax图片上传

  • 上传下载图片,django-filter

    上传下载图片 上传图片 下载图片 django-filter 进行信息过滤 流程:html的ajax请求-->vi...

  • 二十、PHP图片上传

    index.php Ajax+PHP实现异步图片上传

  • Uncaught TypeError: Illegal invo

    $.ajax上传图片会报 Uncaught TypeError: Illegal invocation 错误,这里...

网友评论

      本文标题:laravel5.5 ajax上传图片

      本文链接:https://www.haomeiwen.com/subject/dvzniftx.html