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

黄舟
黄舟Original
2017-08-14 09:10:372024Durchsuche

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


 //生成路径,图片存储
  $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));
  }

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!

Stellungnahme:
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