Maison >développement back-end >tutoriel php >Explication détaillée de la façon dont Laravel et Ajax implémentent la fonction de téléchargement de fichiers
Le projet sur lequel je travaille actuellement est basé sur le développement Laravel et nécessite un téléchargement Ajax. J'ai vérifié certaines informations et trié moi-même les méthodes disponibles. L'article suivant vous présente principalement les informations pertinentes sur l'utilisation de laravel+ajax pour implémenter la fonction de téléchargement de fichiers. Les amis dans le besoin peuvent s'y référer.
Préface
Comme nous le savons tous, les premiers XMLHttpRequest ne prenaient pas en charge le téléchargement de fichiers et utilisaient généralement des plug-ins js tiers ou flash. Vous pouvez maintenant utiliser l'objet FormData de XMLHttpRequest niveau 2 pour implémenter le téléchargement de fichiers binaires. J'ai récemment rencontré cette exigence au travail, donc cet article résumera la méthode d'implémentation pour vous, jetons un coup d'œil à l'introduction détaillée.
Exemple de code
@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)); }
Résumé
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!