您好,欢迎访问一九零五行业门户网

laravel和ajax实现文件上传功能

大家都知道,早期的xmlhttprequest不支持文件上传,一般用第三方js插件或者flash,现在可以借助xmlhttprequest level 2 的formdata对象实现二进制文件上传,正好最近工作中遇到了这个需求,所以本文就来给大家总结下实现的方法,话不多说了,来一起看看详细的介绍吧。
示例代码
@extends('layouts.art') @section('content') <form class="form-horizontal" id="avatar">     {{ csrf_field() }}  <p class="form-group">  <label for="inputemail3" class="col-sm-2 control-label">名字</label>  <p class="col-sm-8">   <input type="title" class="form-control" id="title" name="title">  </p>  </p>  <p class="form-group">  <label for="inputemail3" class="col-sm-2 control-label">头像</label>  <p class="col-sm-8">   <input type="file" class="form-control" id="title" name="photo">  </p>  </p>  <p class="form-group">  <p class="col-sm-offset-2 col-sm-10">   <a class="btn btn-default" onclick="uploadinfo()">上传</a>  </p>  </p> </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));   }
相关推荐:
php网页常见文件上传功能的实现方法、
php文件上传功能实现代码分享
使用jquery实现表单的异步提交与文件上传功能
以上就是laravel和ajax实现文件上传功能的详细内容。
其它类似信息

推荐信息