首页 > 语言 > PHP > 正文

利用laravel+ajax实现文件上传功能方法示例

2024-05-04 23:59:26
字体:
来源:转载
供稿:网友

前言

大家都知道,早期的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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选