利用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代码中使用换行及(\n或\r\n和br)的应用
Feb 02 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
PHP统计当前在线用户数实例讲解
Oct 21 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
php利用header函数下载各种文件
Aug 24 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
Laravel 实现数据软删除功能
Aug 21 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架构及原理知识点详解
2019/12/22 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
Wireshark基本介绍和学习TCP三次握手
2016/08/15 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
JS实现新建文件夹功能
2017/06/17 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python 探针的实现原理
2016/04/23 Python
Python selenium 三种等待方式解读
2016/09/15 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
python中几种自动微分库解析
2019/08/29 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
人力资源专员自我评价怎么写
2013/09/19 职场文书
计算机专业推荐信范文
2013/11/20 职场文书
周年庆促销方案
2014/03/15 职场文书
10的分与合教学反思
2014/04/30 职场文书
教师暑期培训感言
2014/08/15 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2015年外联部工作总结
2015/04/03 职场文书
超市食品安全承诺书
2015/04/29 职场文书
情侣之间的道歉短信
2015/05/12 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书