利用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 select,radio和checkbox默认选择的实现方法
May 15 PHP
php 在windows下配置虚拟目录的方法介绍
Jun 26 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
php判断用户是否手机访问代码
Jun 08 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
php网页版聊天软件实现代码
Aug 12 PHP
PHP清除缓存的几种方法总结
Sep 12 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
php字符串函数 str类常见用法示例
May 15 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
javascript 产生随机数的几种方法总结
2017/09/26 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
Python实现从订阅源下载图片的方法
2015/03/11 Python
Python实现队列的方法
2015/05/26 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
python实现人性化显示金额数字实例详解
2020/09/25 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
一月红领巾广播稿
2014/02/11 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2014年企业团支部工作总结
2014/12/10 职场文书
请客吃饭开场白
2015/06/01 职场文书
妈妈别哭观后感
2015/06/08 职场文书
单位接收证明格式
2015/06/18 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python