Das Projekt, an dem ich gerade arbeite, basiert auf der Laravel-Entwicklung und erfordert den Ajax-Upload. Ich habe einige Informationen überprüft und die verfügbaren Methoden selbst herausgefunden. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zur Verwendung von Laravel + Ajax zur Implementierung der Datei-Upload-Funktion ein. Freunde in Not können darauf zurückgreifen.
Vorwort
Wie wir alle wissen, unterstützte das frühe XMLHttpRequest das Hochladen von Dateien nicht und verwendete im Allgemeinen JS-Plug-Ins von Drittanbietern oder Jetzt können Sie das FormData-Objekt von XMLHttpRequest verwenden, um das Hochladen von Binärdateien zu implementieren. Ich bin kürzlich bei der Arbeit auf diese Anforderung gestoßen, daher wird dieser Artikel ohne weitere Umschweife einen Blick auf die detaillierte Einführung werfen.
Beispielcode
@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)); }
Das obige ist der detaillierte Inhalt vonLaravel + Ajax schließt die Funktion zum Hochladen von Dateien ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!