利用laravel+ajax实现文件上传功能方法示例


Posted in PHP onAugust 13, 2017

前言

大家都知道,早期的XMLHttpRequest不支持文件上传,一般用第三方js插件或者flash,现在可以借助XMLHttpRequest Level 2 的FormData对象实现二进制文件上传,正好最近工作中遇到了这个需求,所以本文就来给大家总结下实现的方法,话不多说了,来一起看看详细的介绍吧。

示例代码

@extends('layouts.art')
@section('content')

<form class="form-horizontal" id="avatar"> 
   {{ csrf_field() }}
 <div class="form-group">
 <label for="inputEmail3" class="col-sm-2 control-label">名字</label>
 <div class="col-sm-8">
  <input type="title" class="form-control" id="title" name="title">
 </div>
 </div>


 <div class="form-group">
 <label for="inputEmail3" class="col-sm-2 control-label">头像</label>
 <div class="col-sm-8">
  <input type="file" class="form-control" id="title" name="photo">
 </div>
 </div>


 <div class="form-group">
 <div class="col-sm-offset-2 col-sm-10">
  <a class="btn btn-default" onclick="uploadInfo()">上传</a>
 </div>
 </div>
</form>

<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
function uploadInfo() { 
  var formData = new FormData($("#avatar")); 
  $.ajax({ 
   url: "{{url('photo')}}",
   type: 'POST', 
   data: formData, 
   contentType: false, 
   processData: false, 
   success: function (returndata) { 
    console.log(returndata); 
   }, 
   error: function (returndata) { 
    console.log(returndata); 
   } 
  }); 
} 

</script>

@endsection
//生成路径,图片存储
  $ext = $request->photo->getClientOriginalExtension();
  $cover_path = "images/album/covers/" . time() . $ext; 
  $name = "photo".time();
  $src = "images/album/photos/". $name .".jpg";
  Image::make($request->photo)->save(public_path($src));*/

 //批量上传图片

  foreach ($request->photo as $key => $value) {
   //生成路径,图片存储
   $prefix = "photo".mt_rand(1,1000);
   $Origname = $value->getClientOriginalName();
   $name = $prefix.$Origname;
   $src = "images/album/photos/".$name;
   $realPath = $value->getRealPath();
   Storage::disk('uploads')->put($src,file_get_contents($realPath));
  }

更多参考

https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/UsingFormDataObjects

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/UsingXMLHttpRequest#Submittingformsanduploading_files

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
php empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
php中随机显示图片的函数代码
Jun 23 PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 PHP
Laravel中使用自己编写类库的3种方法
Feb 10 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
php文件上传、下载和删除示例
Aug 28 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
Sep 15 PHP
TP5框架实现签到功能的方法分析
Apr 05 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 #PHP
php数据序列化测试实例详解
Aug 12 #PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 #PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 #PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 #PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 #PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 #PHP
You might like
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
CodeIgniter扩展核心类实例详解
2016/01/20 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
基于jquery的仿百度的鼠标移入图片抖动效果
2010/09/17 Javascript
JavaScript EasyPager 分页函数
2011/05/25 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
nodejs6下使用koa2框架实例
2017/05/18 NodeJs
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
在Django框架中运行Python应用全攻略
2015/07/17 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
会计专业毕业生推荐信
2013/11/05 职场文书
大学生文员专业个人求职信范文
2014/01/05 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
小学生手册家长意见
2015/06/03 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
SQL语句多表联合查询的方法示例
2022/04/18 MySQL
SQL SERVER中的流程控制语句
2022/05/25 SQL Server