利用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网站提速三大“软”招
Oct 09 PHP
透析PHP的配置文件php.ini
Oct 09 PHP
MySQL相关说明
Jan 15 PHP
php 页面执行时间计算代码
Dec 04 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
php简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
php计算税后工资的方法
Jul 28 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
Yii+upload实现AJAX上传图片的方法
Jul 13 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 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中路径问题的解决方案
2006/10/09 PHP
使用eAccelerator加密PHP程序
2008/10/03 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
浅析$(function) ready和onload 的区别
2016/09/03 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
基于Vue CSR的微前端实现方案实践
2020/05/27 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
python写入xml文件的方法
2015/05/08 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python如何重载模块实例解析
2018/01/25 Python
python素数筛选法浅析
2018/03/19 Python
python实现批量修改图片格式和尺寸
2018/06/07 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
浅析python的优势和不足之处
2018/11/20 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
keras中的History对象用法
2020/06/19 Python
简单了解Django项目应用创建过程
2020/07/06 Python
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
大学生自我鉴定评语
2014/01/27 职场文书
化工专业自荐书
2014/06/16 职场文书
党员思想汇报材料
2014/12/19 职场文书
2016年父亲节寄语
2015/12/04 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP