Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erklärung, wie Laravel und Ajax die Funktion zum Hochladen von Dateien implementieren

Detaillierte Erklärung, wie Laravel und Ajax die Funktion zum Hochladen von Dateien implementieren

黄舟
Freigeben: 2023-03-15 07:00:01
Original
2050 Leute haben es durchsucht

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 geklärt. Der folgende Artikel führt Sie hauptsächlich in die relevanten Informationen zur Verwendung von Laravel + Ajax zur Implementierung der Datei-Upload-Funktion ein. Lassen Sie uns gemeinsam einen Blick darauf werfen.

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(&#39;photo&#39;)}}",
   type: &#39;POST&#39;, 
   data: formData, 
   contentType: false, 
   processData: false, 
   success: function (returndata) { 
    console.log(returndata); 
   }, 
   error: function (returndata) { 
    console.log(returndata); 
   } 
  }); 
} 

</script>

@endsection
Nach dem Login kopieren


 //生成路径,图片存储
  $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(&#39;uploads&#39;)->put($src,file_get_contents($realPath));
  }
Nach dem Login kopieren

Zusammenfassung

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie Laravel und Ajax die Funktion zum Hochladen von Dateien implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage