利用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 session和cookie使用说明
Apr 07 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
PHP中使用smarty生成静态文件的例子
Apr 24 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP简单实现记录网站访问量功能示例
Jun 06 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
在模板页面的js使用办法
2010/04/01 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
js实现简单计算器
2015/11/22 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
基于ssm框架实现layui分页效果
2019/07/27 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
python根据出生日期获得年龄的方法
2015/03/31 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python traceback捕获并打印异常的方法
2018/08/31 Python
python进阶之自定义可迭代的类
2019/08/20 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
ktv中秋节活动方案
2014/01/30 职场文书
给实习单位的感谢信
2014/02/01 职场文书
运动会开幕式主持词
2014/03/28 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
志愿者事迹材料
2014/12/26 职场文书
婚庆主持词大全
2015/06/30 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
正确的理解和使用Django信号(Signals)
2021/04/14 Python
python基于tkinter制作下班倒计时工具
2021/04/28 Python
如何优化vue打包文件过大
2022/04/13 Vue.js
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技