利用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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
使用网络地址转换实现多服务器负载均衡
Oct 09 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
php数组去重的函数代码
Feb 03 PHP
解析PHP 使用curl提交json格式数据
Jun 29 PHP
分享一个php 的异常处理程序
Jun 22 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
Mar 18 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 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
DIY实用性框形天线
2021/03/02 无线电
Php部分常见问题总结
2006/10/09 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
python3实现猜数字游戏
2020/12/07 Python
python怎么判断模块安装完成
2020/06/19 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
商务日语毕业生自荐信范文
2013/11/14 职场文书
母亲节演讲稿范文
2014/01/02 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
党委班子剖析材料
2014/08/21 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
2014年英语工作总结
2014/12/20 职场文书